您的位置:首页 > 移动开发 > Android开发

Android.mk文件中找Apk需要用到的jar包

2015-07-08 09:55 459 查看
以Browser(浏览器)为例所有编译生成的jar包都在目录base\android\out\target\common\obj\J***A_LIBRARIES下,如图:在Android.mk中使用的时候,都是使用intermediates前面的字段。1.首先在Android.mk中,找到所依赖的包LOCAL_STATIC_J***A_LIBRARIES := \
android-common \
guava \
android-support-v13 \
android-support-v4LOCAL_J***A_LIBRARIES := \
android.policy \
com.mstar.android2.在Everything(一个快速查找文件的软件)中找相应的文件夹一般文件夹的名字都是在使用的jar包后面加上_intermediates3.打开文件,找到classes.jar就是需要的jar包。可以自己改名字4.从源代码的import文件中看使用的哪个jar包首先找到此文在源码中的位置然后查看此目录下有没有Android.mk文件。若没有再上一级查找。一直找到为止。例如,import android.provider.SyncStateContract;
找到位置为:Z:\base\android\frameworks\base\core\java\android\provider
找到的Android.mk文件的位置为:Z:\base\android\frameworks\base找到Android.mk后,查看。如果在Android.mk找不到相应的源文件,可以找到以下信息
# FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk

LOCAL_SRC_FILES := $(call find-other-java-files,$(FRAMEWORKS_BASE_SUBDIRS))
找到pathmap.mk中的信息
## A list of all source roots under frameworks/base, which will be# built into the android.jar.#FRAMEWORKS_BASE_SUBDIRS := \    $(addsuffix /java, \        core \        graphics \        location \        media \        media/mca/effect \        media/mca/filterfw \        media/mca/filterpacks \        drm \        opengl \        sax \        telephony \        wifi \        keystore \     )#
说明确实是在这个Android.mk中编译的。然后再看这个Android.mk编译出来的jar包是什么,找LOCAL_MODULELOCAL_MODULE := framework-base,即要导入 framework-base包
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: