kongkong's Blog

No Silver Bullet --- Computer Language is just a tool.

工作杂谈-编译android

| Comments

最近在做飞思卡尔的android方案,根据User Guide需要在ubuntu下编译android,根据我以往做嵌入式的经验,按照文档一步步来。在这过程中的一些坑与解决方法纪录如下:

  1. 在Mac OS X下直接编译,在为android打飞思卡尔的Patch的时候会出现错误。通过VirtualBox+Vagrant的方式在mac中ssh虚拟机的方式,在打patch的时候也会报错。解决方法:直接在另外的一台电脑上安装ubuntu 64位(文档上建议64位)。
  2. 公司新购买了一台Acer笔记本,通过liveUSB安装ubuntu,在进入ubuntu安装界面时候出现黑屏。解决方法:因为acer默认亮度为0了,通过FN+亮度来调节笔记本的亮度。:)这个问题确实很隐秘啊,我还以为是acer无法安装ubuntu来着。
  3. 编译android需要的前提条件,见http://source.android.com/source/building.html.其中需要安装JDK6,饶了一圈找到的直接通过apt-get 安装方法:
$ sudo add-apt-repository ppa:webupd8team/java

$ sudo apt-get update

$ sudo apt-get install oracle-java6-installer

一些术语

AOSP: Android Open Source Project.是纯净版的android开源代码。

AOKP: Android Open Kand Project.在Android社区中,Kang是一个术语,即用来表示这是一个被他人修改过的ROM。

CM ROM:CM 是CyanogenMod 的简称,Cyanogen团队是全球最大的第三方ROM编译团队,覆盖机型范围相当之广,几乎所有热门机型都有相对应的CM ROM可以刷机使用。国内知名ROM作品 MIUI 早期也是直接采用了CM 的源代码,才能迅速在多个机型上普及。

make clean mrproper distclean的区别

clean - Remove most generated files but keep the config and
enough build support to build external modules

mrproper - Remove all generated files + config + various backup files
distclean - mrproper + remove editor backup and patch files

make dist 将所有的程序和相关的文档打包为一个压缩文件以供发布

开启CCACHE来加快android编译

ccache is a compiler cache for C and C++ that can help make builds faster. In the root of the source tree, do the following:

$ export USE_CCACHE=1
$ export CCACHE_DIR=/<path_of_your_choice>/.ccache
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G

The suggested cache size is 50-100G.

You can watch ccache being used by doing the following:

$ watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s

On OSX, you should replace linux-x86 with darwin-x86.

When using Ice Cream Sandwich (4.0.x) or older, you should replace prebuilts/misc with prebuilt.

ADB常用命令

ADB: Android Debug Bridge.
现在说下ADB常用的几个命令
1.查看设备

adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

2.安装软件

adb install
这个命令将指定的apk文件安装到设备上

3.卸载软件

adb uninstall <软件名>
adb uninstall -k <软件名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件.

4.登录设备shell

adb shell
adb shell
这个命令将登录设备的shell.
退出shell:ctrl+D or exit
后面加将是直接运行设备命令, 相当于执行远程命令

5.从电脑上发送文件到设备

adb push <本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

6.从设备上下载文件到电脑

adb pull <远程路径> <本地路径>
用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

7.显示帮助信息

adb help
这个命令将显示帮助信息

ubuntu 切换java版本

由于在安装android sdk过程中安装了open jdk 7,在编译android 时候需要Java SE 6,所以切换java版本

update-alternatives --config java
update-alternatives --config javac

Comments

comments powered by Disqus