Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Ubuntu与Android开发的邂逅「终于解决」,希望能够帮助你!!!。
作者:CavalryLin
博客:https://www.jianshu.com/p/d3e144d29708
回想楼主当初刚使用Ubuntu时,那叫个两眼一抹黑, 连个解压命令都不会,安装个中文输入法都得折腾好几个小时。。。
现在写这篇文章,是希望给第一次使用Ubuntu开发Android的童鞋一点点指导,希望他们可以轻松的上手Ubuntu. 本篇文章大概包含一下几个内容:
中文输入法的安装
JDK/SDK/NDK的安装与环境变量配置
AndroidStudio的安装,启动
AndroidStudio中使用中文输入法
Ubuntu中创建快捷方式
Android模拟器的一些问题
Chrome浏览器安装
中文输入法(搜狗)的安装
先声明一下, 楼主使用的是系统是: Ubuntu16.04 64位
1. 下载搜狗输入法for linux
下载下来是sogoupinyin_xxx.deb。deb文件类似于Windows上的exe文件,可以直接运行的。但是由于这是第三方应用,ubuntu没有软件源无法识别安装。
2. 下载Gdebi用于安装搜狗输入法
sudo apt-get install gdebi
3. 安装搜狗输入法
进入到搜狗输入法所在目录执行如下命令:
sudo gdebi sogoupinyin.deb
4. 启用搜狗输入法
重启电脑,屏幕右上角的键盘按钮处会出现搜狗输入法,如下图
如果没有出现搜狗输入法,继续第5,6步操作
5. 点击屏幕右上角的小键盘, 在弹出的菜单中点击“配置”, 打开如下界面
6. 点击右下角 + 号, 出现如下界面, 去掉 “Only show current Language” 前的对勾, 在搜索框中输入 “sogou” 就会搜索到 “Sogou Pinyin” , 选中“Sogou Pinyin" ,如下图
点击OK, 再重启电脑, 就可以看到搜狗输入法啦!
JDK/SDK/NDK的安装与环境变量配置
JDK,SDK,NDK的安装与环境变量的配置方法都相同。 所谓的安装就是把下载下来的包解压出来。JDK是需要自己手动下载和解压的, SDK、NDK可以通过AndroidStudio下载安装,就无需我们手动下载与解压,只需配置环境变量即可。 这里以JDK为例:
1. 下载JDK(这没什么好说的)
2. 解压JDK
首先,在/home目录下建立一个java文件夹
sudo mkdir /home/java
解压JDK到/home/java目录下
sudo tar zxvf ./jdk-7-linux-i586.tar.gz -C /home/java
解压后/home/java目录下会出现一个jdk1.8.0_112的文件夹(不同JDK的版本文件夹的名字会稍许不同)
3. 环境变量的配置
打开配置文件
sudo gedit /etc/profile
然后在/etc/profile的文件末尾添加
export JAVA_HOME=/usr/lib/jvm/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存后运行如下命令是环境变量生效
source /etc/profile
4. 配置默认JDK
由于一些Linux的发行版中已经存在默认的JDK,如OpenJDK等。所以为了使得我们刚才安装好的JDK版本能成为默认的JDK版本,我们还要进行下面的配置。执行下面的命令:
sudo update-alternatives --install /usr/bin/java java /home/java/jdk1.8.0_112/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /home/java/jdk1.8.0_112/bin/javac 300
注意:如果以上两个命令出现找不到路径问题,只要重启一下计算机在重复上面两行代码就OK了。
执行下面的代码可以看到当前各种JDK版本和配置:
sudo update-alternatives --config java
执行java -version出现如下界面则表示运行配置成功
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_05-b05)
Java HotSpot(TM) Server VM (build 23.1-b03, mixed mode)
说一些题外话,关于环境变量的配置, 当初第一次使用Ubuntu系统时,我是很迷惑的。 网上有的说是配置/etc/profile, 有的说配置~/.bash_profile或~/.bash_login或~/.profile或~/.bashrc . 这么多地方可以配置, 那我们到底配置在那里呢?
其实Ubuntu系统(至少16.04版本是这样)只有/etc/profile和~/.bashrc两处可以配置环境变量。 其中/etc/profile是系统级别的环境变量的配置,~/.bashrc是用户级别的环境变量的配置。
“系统级别的环境变量的配置”和“用户级别的环境变量的配置”有什么区别的?
因为Ubuntu是一个多用户操作系统,可以在一个系统中创建多个用户。 假设我创建了A,B两个用户。 如果我在/etc/profile中配置了JDK的环境变量,那么不论我以A用户登录或是以B用户登录,我都可以使用到已经配置好的JDK环境变量。
而如果我是以A用户登录,然后在~/.bashrc中配置JDK环境变量, 那么切换到B用户登录的话,就无法使用JDK, 因为每一个用户都会有一个独立~/.bashrc,而我们刚才只配置了A的~/.bashrc,而没有配置B的~/.bashrc
至于其他的~/.bash_profile或~/.bash_login或~/.profile之类的配置文件, 这是其他Linux发行版本所有的, 与Ubuntu无关。
安装AndroidStudio
1. 下载AndroidStudio: android-studio-ide-xxx.xxxxxx-linux.zip
2. 解压:unzip android-studio-ide-xxx.xxxxxx-linux.zip -d android-studio
3. 将解压出来的 android-studio移动到/home/ide目录下
mv android-studio /home/ide
4. cd到 /opt/android-studio/bin目录下,会有一个studio.sh的文件,执行
sudo ./studio.sh
即可运行AndroidStudio
5. 第一次运行需下载SDK, 如果下载速度过慢, 可使用如下镜像:
http://android-mirror.bugly.qq.com 端口:8080
6. 如果你是64为系统,运行过程中会碰到 unable to run mksdcard SDK tool:
出现这个的原因是:64位Ubuntu需要安装32位的依赖包,执行如下命令即可
dpkg --add-architecture i386
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6
AndroidStudio中使用中文输入法
一切都搞定, 当你使用AS时, 发现没法输入中文!!!原因是AS运行是没有启用fcitx环境, 这该怎么解决呢? 很简单,我们需要将以下三行代码
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
添加到/bin/studio.sh中,如下图所示
创建快捷方式
1. 在/usr/share/applications目录下新建AndroidStudio.desktop
sudo touch AndroidStudio.desktop
2. 打开AndroidStudio.desktop
sudo gedit AndroidStudio.desktop
3. 写入如下内容并保存
[Desktop Entry]
Name = AndroidStudio
Comment= AndroidStudio
Exec=/home/ide/android-studio/bin/studio.sh
Icon=/home/ide/android-studio/bin/studio.png
Terminal=falseType=Application
4. 按住Ctrl将图标拖动到左侧laucher
创建Android模拟器遇到的一些问题
1. 如果在创建模拟器的时候遇到NoSuchFileException (在Event Log 窗口中输入的日志)
NoSuchFileException: /home/xxx/.android/avd/Nexus_5_API_22.ini
将 /root/.android/avd 复制到 /home/xxx/.android/ 下即可(xxx 为的你用户名, 也就是家目录)
sudo cp /root/.android/avd /home/xxx/.android/
然后修改一下权限即可
sudo chmod -R 777 /home/xxx/.android
2. 当你遇到这种情况:
Note: avd is searched in the order of $ANDROID_AVD_HOME,
$ANDROID_SDK_HOME/.android/avd and $HOME/.android/avd
首先解释一下这几个变量:
$ANDROID_AVD_HOME: 就是模拟器镜像的环境变量
$ANDROID_SDK_HOME: Android SDK的环境变量$HOME: 家目录
那这个错误提示就很清楚了, AS创建模拟器先先搜寻$ANDROID_AVD_HOME目录下有没有.android/avd, 在搜寻$ANDROID_SDK_HOME目录下有没有.android/avd, 最后搜寻$HOME目录下有没有.android/avd
在这里我遇到的情况是: 第一次(装机以来的第一次)运行模拟器时, 可以成功启动. 可是几天之后再运行, 竟然启动不了了.
我首先查看了$HOME目录下.android/avd是存在的. 那为什么会启动不了呢? 是不是它的上一个优先级目录中存在了无效的.android/avd目录呢? 接着我去查看了$ANDROID_SDK_HOME目录, 果然在这个目录下有一个.android文件夹, 但是这个.android文件夹里面什么也没有, 是一个空文件夹.
既然是这样, 那我们就有两种解决方案:
删除$ANDROID_SDK_HOME下的.android, 但这种方案不可靠, 谁知道AS会不会又抽风在此目录下再建立一个空的.android文件夹呢
那我们就采用第二种方案, 给模拟器设置一个环境变量, 在/etc/profile中添加如下内容(记得把xxx替换成你自己的用户名)
export ANDROID_AVD_HOME=/home/xxx/.android/avd
export PATH=${ANDROID_AVD_HOME}:$PATH
然后在执行source /etc/profile是环境变量生效. (理论上这样就可以了, 但是我是在重启电脑之后才可以正常创建模拟器的)
Chrome浏览器安装
查看教程:http://www.linuxidc.com/Linux/2016-05/131096.htm
近期文章:
回馈粉丝:金三银四面试潮,精心整理的资料!
一个Handler面试题引发的血案!
想换一个高薪工作,简历要做好
今日问题:
你准备换到Ubuntu嘛?