编译Linux下的android SDK和模拟器
和前面编译android源码一样,首先执行envsetup.sh,然后选择SDK对应的产品。
这里要强调一下,当我们使用lunch 列举android源码支持的产品的时候,是看不到有SDK相关的信息的,至少我的是看不到。
不过没关系,直接执行命令即可
lunch sdk-eng
会看到下面的信息
接着执行命令
make sdk -j2
这里一定要记住-j后面的数字不要太大了,最多是几G内存,后面设置的数字就为几,只能比这个数字小。
接着又是漫长的等待。
大约七八分钟后,会出现一个错误
make: *** [out/target/common/docs/online-gcm-ref-timestamp] 错误 45
如下图所示
解决办法是:
在android源码目录中/frameworks/base目录下执行
git revert 5f9922d7c3bce158e4c7a58929d4075e7c91e32e
不一会儿会出现
执行ctr+x离开,然后出现下图所示,表明恢复成功。
然后返回android源码根目录,重新编译SDK,执行命令
make sdk -j2
大约半个小时后,编译结束,会在out\host\linux-x86中生成一个SDK文件夹,里面包括了android APP开发所需的帮助文档,模拟器等等
同时在out\target\product\generic也会生成一个压缩包
接下来配置一些环境变量,将下面的内容添加到/etc/profille中,并执行source /etc/profile,使其生效
export PATH=/home/android/myandroid/out/host/linux-x86/bin:$PATH
export PATH=/home/android/myandroid/out/host/linux-x86/sdk/android-sdk_eng.android_linux-x86/tools:$PATH
上面的环境变量生效后,我们就可以使用下面的命令创建模拟器了
首先查看我们编译出来的SDK版本
执行(必须在ubuntu系统中执行,不要远程登录执行)
android list targets
然后创建一个名为myandroid的模拟器
android create avd -n myandroid -t 1
其中myandroid是模拟器的名字,1 是该源码支持的第一个SDK版本
接着执行
emulator -avd myandroid &
就可以看到我们编译的模拟器了,该模拟器使用的就是我们前面编译的android系统镜像
编译windows上的android模拟器
首先执行envsetup.sh,然后选择SDK对应的产品。
lunch sdk-eng
然后执行
make win_sdk -j2
这里要注意一定要现编译Linux版本的SDK,然后在编译windows版,在虚拟机中大约是十分钟。
生成的SDK路径在out\host\windows\sdk中
将其复制到windows中,解压
新建一个模拟器
然后启动模拟器
邪门了,怎么没键盘了。。。。