源码下载及编译参考文章 https://www.jianshu.com/p/367f0886e62b
- 按以上文章下载编译Android 源码基本没有问题,不过在我这里出现几个问题,特此记录下:
1.【 关于同步】repo sync时会报 fetches error due to some errors[具体错误信息记不清楚了,反正就是大概的错误]查过网上N多资料,可以搜一下,最后我没有怎么改动,一直repo sync就好,直到最后成功,大概用了两天的时间,若嫌麻烦可以自行百度,写个自动化repo sync的脚本就行了。
2.【关于编译】这块儿我没有出问题,我就不赘述了,出错看网上大部分是由于同步有问题,所以同步在费事也要同步成功。编译这个大概用4-6个小时。
3.【启动模拟器】,这块折腾了有一天,各种试,都无果,最后无奈根据http://www.tarenacn.com/azpxxy/1489474823074.html这篇文章重新编译arm32位的吧,实则是下下策,还好正好到晚上了,我去睡觉,让他自己编译去吧,第二天,启动模拟器果然好了,深层原因我就不去探究了,所以如果没有什么特定要求lunch的时候第一个aosp-arm-eng就可以了。
4.【集成app到系统】这个说实话,也搞了一天,各种mk配置,这里主要集成已经打包好的apk
到系统:
4.1 创建demo
文件夹:将apk
文件放入,并新建Android.mk
文件,内容如下:
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := demo
LOCAL_SRC_FILES := ./demo.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
LOCAL_MULTILIB := 32
LOCAL_PREBUILT_JNI_LIBS := \
./demo.so \
include $(BUILD_PREBUILT)
demo文件夹只要在source目录中就会被扫描到,这里可以自行新建一个专用于放第三方App的文件夹
4.2 修改系统device.mk
-
修改
/build/target/board/${Project}/device.mk
文件(其中 ${Project} 表示工程名,如generic
)
添加要集成的模块demo
,即PRODUCT_PACKAGES+=demo
-
完成以上述步骤后,执行以下命令进行
full build
全编译,将CMNS
服务集成到系统镜像:
$ cd source
$ source build/envsetup.sh
$ lunch
$ make -j8
由于之前已经进行过全编译,此处一般会比较快,大概几分钟。
编译完之后再out/.../system/apps/
应该会有demo文件夹,则说明集成成功。
注:
- source为系统源码目录
- 也可以修改
/device/[设备商/devece.mk]
,具体目录需根据硬件厂商确定。 - 关于Android.mk ,可以查看这篇文章:
- 关于Android build 系统的相关知识,可以查看这篇文章:
网友评论