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×/。