Android相关编译和目录小计

本文介绍了Android编译过程,包括整体编译、framework编译和模块编译。通过make命令在不同目录下操作,可以生成android.jar、class.jar以及模块化的jar包。此外,还涉及API的管理和资源文件的更新,以及如何在模块中添加和导出API。

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

Android目录下包括内核和android源码

编译:在Android目录下make整体编译,编译成功后make android编译android源码。进入android目录,通过make sdk可以得到应用开发用的android.jar,生成的目录为out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar

并在out/host/linux-86得到与sdk相当的目录结构。

生成工具目录out/host/linux-86/bin下。

framework 编译:

在android目录下make framework

得到class.jar都在out\target\common\obj\JAVA_LIBRARIES目录下

需要使用向framework中添加的接口得使用core_intermediates下的class.jar和framework_intermediates下的class.jar.

模块编译:

在android目录下执行source ./build/envsetup.sh,即可以用mmm进行模块编译。


重新生成system.img:make snod。

补充:

关于api的生成

资源文件的api在public.xml中显示

源文件的api在frameworks/base/api/current.xml中显示

当需要自己增加模块并导出自己的api时,需要在pathmap.mk中配置自己模块的路径(FRAMEWORKS_BASE_SUBDIRS)之后编译。

如果是在已有的模块中添加自己的api,直接编译就行。

修改已有的api需要make clean和make update-api之后make。

编译:make---------make update-api-----------make sdk。

也可以生成自己的jar包

需要在自己的目录下添加Android.mk文件

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

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := \
源文件目录

LOCAL_JAVA_LIBRARIES :=依赖的java包

LOCAL_MODULE := 要生成的jar名称

LOCAL_CERTIFICATE := platform

include $(BUILD_JAVA_LIBRARY) 


隐藏api添加注释/××@hide×/。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值