年底了,部门里面开始了移动端开发的培训,有ios和Android的选,不过我这个屌丝没有mac,而且也挺喜欢Android的,所以就毫不犹豫地选择了Android。
我的一直都在用Ubuntu,Linux菜鸟用户。所以就在Ubuntu上面开发了,不过这个也让我遇到了一个诡异的问题,在后面再说了。
Android SDK
最开始当然是下载Android开发的sdk,直接去官网下载就好了,如果平时没有用Eclipse,可以下载ADT bundle,里面出了SDK外还自带了一个Eclipse以及相关的插件。
Java
在此之前,当然需要安装Java,虽然可以apt-get install openjdk7-jre
就装好了Java,不过还是建议安装Oracle Java,这个之前在玩minecraft的时候,就感受过两者的速度差异。
至于如何安装Oracle Java,可以参看这篇文章:Linux 下安装配置 JDK7。
下载sdk
我们可以打开sdk/tools/android
这个,然后就打开了Android SDK Manager,在这里我们可以下载我们需要的sdk。
模拟器加速
x86 img
为了加速模拟器,非常建议下载Intel x86 Atom System Image
,这个在Intel的CPU上面运行模拟器的速度会大大提高,这个是大牛宇哥推荐的,本来用ARM EABI v7a System Image
挺卡的,公司的电脑开个机也要挺久的,现在用Atom仅仅需要不到10秒就可以打开一个4.2的模拟器进到桌面,运行也非常流畅。
kvm
另外,宇哥说如果CPU支持虚拟化技术,打开可以提高性能,一般主板默认会关闭,需要在BIOS打开。
打开CPU虚拟化后kvm就可以工作了,可以提高一定的性能。可以lsmod
看看kvm有没有工作。
1 2 3 |
|
不过我的笔记本的渣渣CPU(Intel® Core™2 Duo Processor P7350)就不支持VT,于是开机还是挺慢的,不过还是比ARM开个8分57秒
好多了。用x86的镜像仅仅1分30秒
就可以开完机了。
gpu
我们在创建avd的时候,可以选上Use Host GPU
,这样就可以有一定的加速。不过snapshot
不可以和Use Host GPU
同时使用,还是挺可惜的。
两者的区别可以看What is Snapshot and Use host GPU emulation option(s) for?
Linux下面的bug
Android课程的老师分享说在Linux下面有个Bug,会导致CPU 100%。我们可以在~/.android/avd/[avdname].ini
加上hw.audioOutput=no
,就可以解决CPU 100%的问题了。
kubuntu上面遇到的问题
adb
我在kubuntu 13.10 x64上面打开adb,直接报“No such file or directory” trying to execute linux binary,想起来之前有遇到过类似的问题,宇哥告诉我是因为缺了些so,一般情况都是64位系统里面缺了32位的一些库。
本来想安装ia32-libs
,不过发现这个在ubuntu 13.10居然去掉了,不过还是有解决方案的1。
1 2 |
|
Eclipse Crash
接着运行Eclipse,就一直crash,报的是
1 2 3 4 |
|
无论我用openjdk还是oracle java,都会crash,后来去找了发现原来是gtk的bug。暂时用下面的方法打开Eclipse就好了,具体见2。
1
|
|
SDL
终于开了Eclipse后,启动模拟器报:SDL init failure, reason is: No available video device
。
发现又缺了个32位的库,sudo apt-get install libsdl1.2debian:i386
装上3。
无线adb
宇哥又介绍了一种无线adb,在手机安装ADB Konnect (wireless ADB),然后按照程序的提示用adb连接上手机就可以远程无线调试了。