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

以Browser(浏览器)为例

所有编译生成的jar包都在目录out\target\common\obj\JAVA_LIBRARIES下,如图:


在Android.mk中使用的时候,都是使用intermediates前面的字段。

1.首先在Android.mk中,找到所依赖的包
LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    guava \
    android-support-v13 \
    android-support-v4

LOCAL_JAVA_LIBRARIES := \
    android.policy \
    com.mstar.android

2.在Everything(一个快速查找文件的软件)中找相应的文件夹

一般文件夹的名字都是在使用的jar包后面加上_intermediates

3.打开文件,找到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_MODULE
LOCAL_MODULE := framework-base,即要导入 framework-base包



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值