Android 在应用程序中引用第三方Jar包

本文介绍了一种在Android开发中集成第三方库的方法。通过在framework层添加特定模块,包括反射第三方jar包的Java类、配置Makefile及XML权限文件,可以实现对第三方库的有效引用。此外,还详细说明了如何在应用程序中正确配置这些库。

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

转自:http://lirui.blog.51cto.com/2336974/512446

由于第三方jar包的格式问题,如果想引用包中类的某些方法,可行的做法是:

在framework 层添加一个模块,包含以下这些文件:

1.反射第三方jar包的java类
2.framework的makefile 文件
3.以工程包名为文件名的xml文件

---------------------
一、反射jar包类内容(略)

二、xml文件内容

<? xml version ="1.0" encoding ="utf-8" ?>
< permissions >
< library name ="com.test.lib"
file ="/system/framework/mylib.jar" />
</ permissions >


此处的library name 属性值为工程包名、文件名与编译Jar包的module name一致。

三、framework makefile 内容:
主要包括两部分的编译内容:
1.拷贝xml文件到OUT-TARGET/permission 目录下

2.编译工程中的源文件为Jar包

LOCAL_PATH:= $(call my-dir)

#make xml

  include $(CLEAR_VARS)

  LOCAL_MODULE_TAGS := optional

  LOCAL_MODULE := com.test.lib.xml

  LOCAL_MODULE_CLASS := ETC

  LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions

  LOCAL_SRC_FILES := $(LOCAL_MODULE)

  include $(BUILD_PREBUILT)

#make mylib.jar

  include $(CLEAR_VARS)

  LOCAL_SRC_FILES := $(call all-subdir-java-files)

  LOCAL_MODULE:= mylib

  LOCAL_MODULE_CLASS := JAVA_LIBRARIES

  LOCAL_MODULE_TAGS:= optional

  include $(BUILD_JAVA_LIBRARY)


-------------------------
编译这个framework jar 包:

1.<Android_RootPath>$make mylib
2.
(1).<Android_RootPath>$ . build\envsetup.sh

(2).<Android_RootPath>\framework\base\core\<Module_Path>$make mylib

//编译结束后会在 out/target/product/generic/system/framework 目录下生成相应的 mylib.jar 库文件
//在 out/target/product/generic/system/etc/permissions 目录下生成相应的 com.test.lib.xml 文件

-------------------------

在应用程序中引用库

1.在应用的make 文件(Android.mk)中添加

LOCAL_JAVA_LIBRARIES := mylib
#如果引用多个库中间用空格隔开

2.在工程的AndroidManifest.xml中的<application>节点下添加

< uses-library
android:name ="com.test.lib" >
</ uses-library >


---------------------------
在应用程序下测试
在工程类内引用包中的类,

import com.test.lib.Mylib;
public static void main(String[] args){
         //there is a class naming Mylib in Jar Libary
        Mylib mLib = new Mylib();
         //there is a test method in class Mylib
        mLib.test();
}


编译工程


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值