美文网首页
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