美文网首页
Ubuntu14.04 下编译安卓源码,并集成自己的App为系统

Ubuntu14.04 下编译安卓源码,并集成自己的App为系统

作者: 程小亮 | 来源:发表于2018-02-07 19:20 被阅读255次

源码下载及编译参考文章 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文件夹,则说明集成成功。
注:

  1. source为系统源码目录
  2. 也可以修改/device/[设备商/devece.mk],具体目录需根据硬件厂商确定。
  3. 关于Android.mk ,可以查看这篇文章:
  4. 关于Android build 系统的相关知识,可以查看这篇文章:
目前关于Android源码编译以及集成三方App到Android 系统里就这样,基本实现了下载同步谷歌Android 源码,并集成三方App到系统,对了,如果想打包成可以刷机的系统镜像,make bootimage 就可以了。

相关文章

网友评论

      本文标题:Ubuntu14.04 下编译安卓源码,并集成自己的App为系统

      本文链接:https://www.haomeiwen.com/subject/zqmazxtx.html