Android 在应用程序中引用第三方Jar包
来源:互联网 发布:手机画画软件sketchbook 编辑:程序博客网 时间:2024/05/17 22:40
转自: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>
<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)
#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>
android:name="com.test.lib">
</uses-library>
---------------------------
在应用程序下测试
在工程类内引用包中的类,
import com.test.lib.Mylib;
public staticvoid 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();
}
public staticvoid 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();
}
编译工程
- Android 在应用程序中引用第三方Jar包
- android系统源码中引用第三方jar包
- android引用第三方jar包
- android引用第三方jar包
- Android Framewok引用第三方jar包
- 在运行jar包的过程中处理引用第三方jar包方法
- 在android源码编译中导入第三方jar包
- 在Android应用中使用第三方Jar包
- 如何在Android项目中引入第三方JAR包
- 源码里开发的应用程序引用第三方jar包
- Android中使用第三方jar包
- android 中导入第三方jar包
- java在cmd下编译引用第三方jar包
- Android项目工程在源码环境下编译时引用第三方jar包
- android .mk 引用第三方jar包(参考 Calculator )
- Jmeter 中使用Beanshell来引用第三方jar包
- 在Eclipse中打包引用了第三方jar包的J2SE项目成jar文件的方法
- android jar 第三方包
- 配置SAP打印机
- android编程中setLayoutParams方法设置
- Python_API_os_remove_待填充
- 免费暗黑3暗藏的危险
- Android LGame入门
- Android 在应用程序中引用第三方Jar包
- 阿里郎与阿里云
- 几篇文章待看
- 移动Web界面样式-CSS3
- MySQL索引背后的数据结构及算法原理(转)
- C++编程准则(3)
- C# server terminal
- J2EE Java Pet Store 与 .NET PetShop
- 在存储过程中编写正确的事务处理代码(SQL Server 2000 & 2005)