自定义程序 第三方apk 编译进Android方法

本文深入探讨了如何使用Android系统进行自定义程序编译及第三方APK整合的技术细节,包括源码管理、配置文件修改、依赖库处理等关键步骤,并提供了详细的操作指南与实例解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       Android的编译系统详细的讲解见《Android内核剖析》柯元旦 第18章

       自己试着按照书上和网上的方法编译,不知道为什么就老是出问题。不知道是不是因为系统版本的原因,网上许多教程都有问题,断断续续弄了两天终于弄完了。

       一,自定义程序

       有源码那种==,可以完全模仿系统内置的程序,如Calender,等,这里我的项目名字是HelloAndroid。

1,理论上,源码放置的位置没什么关系。我是放在packages/app里面,

在项目根目录下新建Android.mk 内容可以从Calender里面的Android.mk直接复制 然后修改下

       LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)


LOCAL_MODULE_TAGS := optional


LOCAL_SRC_FILES := $(call all-java-files-under,src)


# TODO: Remove dependency of application on the test runner (android.test.runner)
# library.
LOCAL_JAVA_LIBRARIES := android.test.runner


LOCAL_STATIC_JAVA_LIBRARIES += android-common


LOCAL_PACKAGE_NAME := HelloAndroid


include $(BUILD_PACKAGE)


# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))


具体修改了 LOCAL_PACKAGE_NAME := HelloAndroid  即改为应用的名字,其他命令的具体含义可以参见我推荐的那本书。

2,修改跟目录/build/target/product/下的generic.mk文件添加上你的应用名字如下:

PRODUCT_PACKAGES := \
    AccountAndSyncSettings \
    DeskClock \
    AlarmProvider \
    Bluetooth \
    Calculator \
    Calendar \
    Camera \
    CertInstaller \
    DrmProvider \
    Email \
    Gallery3D \
    LatinIME \
    Launcher2 \
    Mms \
    Music \
    Provision \
    Protips \
    QuickSearchBox \
    Settings \
    Sync \
    SystemUI \
    Updater \
    CalendarProvider \
    SyncProvider \
    HelloAndroid \

然后就可以了~,由于make机制的原因又是需要修改下原来的文件 才会重新make, 不过最保险的做法,还是重新make clean 然后再make......

二,把第三方apk编译进android系统

这个可能做ROM的会比较熟悉一点。。。下面推荐我认为最简单的方法==

使用yaffs2 

yaffs2包含了两个工具 mkyaffs2image和mkyaffsimage 也就是可以直接把一个文件夹生成system.img的工具

1,yaffs2安装方法:

apt安装 git

新建一个文件夹 yaffs2 进入到该文件夹下执行git clone git://www.aleph1.co.uk/yaffs2 完成后进入yaffs2 直接make就行了。

2,生成system.img

 进入编译好的Android系统目录 /out/target/product/generic 把你的apk放入当前目录下的/system/app目录下 ,如果该apk中有其他依赖的库 可以解压apk,将其中的lib/ .so文件copy到/system/lib下

然后在/out/target/product/generic 下执行

mkyaffs2image -f system system.img

也就是把当前的system打包成system.img

emulator -system system.img -data userdata.img -ramdisk ramdisk.img 指定下运行的系统为加载刚刚的system.img就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值