如何制作Jar包并在android中android调用jar包包

查看: 424|回复: 0
android 生成jar包里面包含资源文件
主题帖子积分
论坛元老, 积分 74187, 距离下一级还需 9925812 积分
论坛元老, 积分 74187, 距离下一级还需 9925812 积分
[color=amily:Arial] 背景:工作中需要开发一个广告插件,并提供给其它人使用。这里就需要把自己的插件程序,打成jar来提供给他人引用。9 J+ t& V4 `- w/ x0 {
但是遇到一个问题:插件程序中无法使用资源文件。
. ]" `7 R3 T4 j4 v* j
试过以下几种方式解决:/ y5 K+ s! Q- Y+ O6 f- a' \# L* ?
1、从插件程序中导出jar包0 W; i, x- `! E3 i
论坛上有人说导出的jar包中无法包含Drawable等资源文件,一些图片等数据,需要放到Assert文件中使用。+ |" T2 F) i9 P/ X$ d' a0 ^
其实,关于这个问题,我做了尝试:
首先,需要说明导出jar包含什么文件是由你导出时选择来决定的,比如下图:
_cf9I.jpg (53.44 KB, 下载次数: 0)
22:12 上传
如果你选择了res文件夹,则打包出的jar文件是可以包含res文件到。
但是包含文件并不代表可以使用。如果你想当然在插件程序中使用R.drawable.XXXX等方式获取/ u% M: E: |' X& n4 F
资源会报错!
当然别人通过R.XX.XX也只能看到自己的资源文件,而无法获取jar中的资源文件。
2、获取jar包中的文件! [' t7 X&&q) k4 a, W0 U# i4 I
8 ^' {) d: C( h( f8 b6 {
虽然无法直接引用资源文件,但是如果外边程序想获取某个资源文件时,也是可行的。
其原理是以数据流读取jar中指定的文件。, e- V( ]6 W0 O* M/ ]7 O- F
比如读取Assert文件下的icon.jpg文件:+ I' q2 K% U1 E+ L" Z# [
你可以在插件中封装一个对外的方法:7 _2 V5 C' X' c9 k7 y/ `/ k( g
& &&&publicstatic Drawable getAssertDrawable(Context context,StringfileName){
& && &&&try {
& && && &&&InputStreaminStream=context.getAssets().open(fileName);
& && && &&&return newBitmapDrawable(BitmapFactory.decodeStream(inStream));
& && &&&} catch(IOException e) {4 k' U9 M2 h$ T: J9 m6 N: G
& && && & Log.e(LOG_TAG, &Assert中&+fileName+&不存在&);8 l) c" C7 E1 J
& && &&&}( f/ [2 h9 H3 ]3 m' E
& &&&}$ |3 u, X5 m4 b4 T
直接使用该方法可以得到文件。
后来又尝试在外部程序,直接使用context.getAssets().open(fileName)方法获取jar中文件,0 [: W& m/ t7 P5 Y& m
让人喜出望外的是竟然成功了。呵呵!/ t3 g8 h8 S" _. w- H+ J
后来分析,外部程序编译时,其实连同jar包中内容一起混编。jar包中的Assert文件会同外部程序的Assert一起
由AssertManager管理。( \9 c) K/ Q7 I4 G
所以当你jar包中Assert内部文件和外部Assert中的文件有命名冲突时,编译器会报错的。
另外,还有人提供另外一种方法来读取诸如Drawable等文件夹下的文件。$ g' P8 f7 V2 f3 x5 A
& &&&publicstatic Drawable getDrawableForJar(String resName,Classclass){
& && &&&InputStreaminStream=class.getResourceAsStream(resName);
& && &&&return newBitmapDrawable(BitmapFactory.decodeStream(inStream));& [2 b8 v8 l5 K! ]6 I: o. u
& &&&}; P- C1 R( u) R9 s
使用class.getResourceAsStream()方法读取,注意这里resName是文件的相对路径,比如jar根目录下res/drawable/icon.png,
则调用方法为:class.getResourceAsStream(/res/drawable/icon.png);
# L5 S) f$ U8 U. {6 w4 r
这里主要是采用ClassLoader的下面几个方法来实现:
&&[color=amily:Arial]   public URL getResource(String name); &&]1 S5 |0 z&&n0 O0 D4 [
&&[color=amily:Arial]   public InputStream getResourceAsStream(String name) 8 }4 H/ W' |0 K: }9 h! E& O( l
&&[color=amily:Arial]   public static InputStreamgetSystemResourceAsStream(String name)
&&[color=amily:Arial]   public static URL getSystemResource(String name)
&&[color=amily:Arial]   后两个方法可以看出是静态的方法,这几个方法都可以从Jar中读取图片资源,但是对与动画的gif文件,笔者在尝试过程中发现,存在一些差异。
&&[color=amily:Arial]   String gifName为Gif文件在Jar中的相对路径。 8 x5 Q&&p0 [&&V, p&&p
&&[color=amily:Arial]   (1)使用了两个静态方法   BufferedImageimage=ImageIO.read(ClassLoader.getSystemResourceAsStream(gifName));$ U1 h! g# l- g1 F( d! t3 i- ]+ c
&&[color=amily:Arial]   或者   Image image=Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource(gifName));
&&[color=amily:Arial]   这两种方式可以成功地读取gif文件,但是对于gif动画,显示出来地是静态的。 - h% i! |3 e5 r8 T# \: _
&&[color=amily:Arial]   (2)使用其他两个方法   Image image=Toolkit.getDefaultToolkit().getImage(this.getClass.getClassLoader().getResource(gifName));; O( q4 S8 I0 @* ?, n, i. a
&&[color=amily:Arial]   再这种方式下动画可以正常显示了。
[color=amily:Arial]3、使用library方法加载资源文件
[color=amily:Arial]在论坛中看到帖子讲述如何把工程作为libarary,让其他工程添加library,编译后会自动生成jar,然后在哪来使用。. A: s/ Z+ [: ^&&l) d+ C6 X
[color=amily:Arial]当时看到此贴,喜出望外,所以赶紧尝试下!
[color=amily:Arial]方法:选择插件工程,右键选择属性,选择Android,勾选下面Is Liabrary选项。
[color=amily:Arial]然后,选择我们现有的工程,右键属性,选择Android,在library下add相应的库。你会看到,刚才我们设置的插件项目,就在其中。最后,点击应用,完成。. B" N* U8 _. E$ f: i' M% l&&Q$ T
[color=amily:Arial]详细步骤:' s5 }+ n9 d& [; G6 [% Q+ x# Z- V
, P% T7 u5 W&&Y9 X4 Y
* a% P; }9 \+ [; Y8 }
&&[color=amily:Arial] 按如下方法设置:
&&[color=amily:Arial] 1. 假设要引用的android工程叫LibProject,引入到的工程叫MainProject;
&&[color=amily:Arial] 2.设置LibProject,右键-&Properties-&Android,将Islibrary项选中,然后Apply;
&&[color=amily:Arial] 3.设置MainProject,右键-&-&Properties-&Android,在Library中,点击Add按钮,将LibProject工程加入,Apply即可。 / x) n! p2 |, C$ E: q! k( T5 |, Q2 g
" P! f& H9 j. m4 f
[color=amily:Arial]你会看到我们的工程中多出插件工程的引用,而且可以使用R.XXX.XXX获取资源文件。
* J1 p& P! p7 E# t- `. T
[color=amily:Arial]以为可以解决了,但是发现并没有生成想要的jar文件。在插件工程中,倒是有编译的class文件,却没有jar包。; O- h4 D7 s& |
[color=amily:Arial]而我们往往是不能像这样把原工程给别人直接引用的。& w7 W$ j' j0 s, P&&Q! p
[color=amily:Arial]经过多次试验,始终没有生成jar,非常奇怪别人怎么弄得。。。/ E* d' g8 \&&j# L6 X
[color=amily:Arial]另外,拿以前通过这种方式生成的jar文件看,里面也不包含资源文件夹。。+ A, @4 ]) b% R! e, S9 [$ n
[color=amily:Arial]所以最终确定,这种方式无法实现需求。
游戏咖啡屋-最好的游戏编程源码技术网站!1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关 交流QQ群:
2、本站所有主题由该帖子作者发表,该帖子作者与享有帖子相关版权
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
哈...今天心情不错,来游戏咖啡区签到了...
Powered by如何制作Jar包并在android中调用jar包 - CSDN博客
如何制作Jar包并在android中调用jar包
android制作jar包:
新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmanifest.xml和res文件夹,就可以了。否则在调用jar包的时候会出现“Error generating final archive: Found duplicate file for APK: AndroidManifes”这个错误。
如果在android用调用jar包,需要在工程的属性的Java build path中点击Add external JARS(也可以选择Add
Library)添加jar包,在程序中调用调用jar包中的函数即可。
添加jar包:(jar在windows下编译了就可用了,不需要交叉编译,这也体现了java一次编译跨平台的特点)
也可以在Java build path中点击Add
Library添加jar包(可参考Android中引入第三方Jar包的方法,测试可行(/android/548.html))
在程序中调用jar包中的方法 (本文中 小写的hello是包名,大写的Hello类名,test是方法):
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
制作可执行的的jar包需要添加MANIFEST.MF。不需要执行的jar包,不需要MANIFEST.MF,只需要把用的class文件打包就可以了。 (jar cvf a.jar hello.class hello2.class)
制作可执行的的jar包,注意MANIFEST.MF &,M(必须大写)ain-C(必须大写)lass:(必须有个空格)包名.类名(必须回车),必须回车,
否则运行jar包(java -jar a.jar)时候会出现&&Fail
to load main-class manifest attribute from a.jar& 这个错误。
-----------------------------------------------------------------------------------------------------------------------------------
其他文档:
(http://blog.csdn.net/yy4040/article/details/6641688)
之前提出来一个问题,参见
http://topic.csdn.net/u//ad7b-4fef-950d-92d5d6983628.html
分析结果如下:
1、jar被包含进其他项目后,最终生成的apk文件中包含jar中的资源(目录结构也是一样的),这个可以通过zip打开jar和apk查看。
2、jar中的资源应该也是被jvm管理起来的,但是由于其实际id与原始jar项目中产生的id不一致,导致使用原始jar项目中的资源id不能访问到实际资源。只能通过getClass().getClassLoader().getResourceAsStream()的方式进行访问。
对于使用jar方式进行组件开发,有以下需要注意:
1. jar包中一般只包含代码不包含资源。
2. 如果要在jar中包含资源,则资源文件不应该放在默认的res目录下(因为导入其他项目后可能出现重名冲突),应该在package目录下创建专用的资源目录,如此通过pakcage的不重名来确保导入后资源不冲突。同时,jar中代码不能直接使用R类中资源id进行访问,应该通过getClass().getClassLoader().getResourceAsStream()进行加载。
3. 字付串资源可以定义成常量的方式来使用。
Android下编译自己的库文件jar并在应用中调用
(转自/gaogaf/item/cefbb444fff2046)
主要为了解决如下问题:
项目中使用了Android未公开的API,在Eclipse下会有红叉显示。
不同的项目抽出相同部分的代码共用。
必需的前提条件:
需要有Android源代码,编译的库文件主要是封装未公开API或者共用代码。
工程1:Java库文件工程
该工程最终会生成以jar结尾的Java库文件,并会被安装到设备的以下目录:
/system/framework/
另外还会安装相关库文件的说明文件,使系统能够找到库文件:
/system/etc/permissions/
1、建立工程
在Eclipse下新建一个空的Java工程。
Java Build Path -& Libraries
下,导入Android的SDK中的 android.jar 库。
为工程创建相应的包和java文件。
下面假设包路径为 com.mytest.lib,最终生成的库为 mylib.jar。
2、为工程添加注册文件
在库文件工程的根目录下创建以下文件:
&permission xml file name&.xml
该文件是用来向系统注册库用的,名称可以自己定,在下面假设该文件为 mylibxml.xml。
在文件中加入以下内容:
&?xml version=&1.0& encoding=&UTF-8&?&
&permissions&
&library &&&&
name=&com.mytest.lib&
file=&/system/framework/mylib.jar&&
&/permissions&
其中的 library 用于将其下的 name 和 file 两个属性关联起来,name 的值后边会用到。
这里的 name 指定为工程的包名。
这里的 file 指定为库文件的存放路径,应该是:
/system/framework/&jar file name&.jar
3、为工程添加makefile文件:
在库文件工程的根目录下创建以下文件:
Android.mk
该文件是用来编译工程的,名称固定。
在文件中加入以下内容:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_MODULE := mylib
include $(BUILD_JAVA_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := mylibxml.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
其中,MAKE_JAR 部分的 LOCAL_MODULE 部分指定为想要生成的库文件的名字,
需要与 .xml 文件中的 library 下的 file 部分一致。
其中,MAKE_XML 部分的 LOCAL_MODULE 部分指定为用于注册库的 .xml 文件。
4、生成应用程序可用的库文件
此时的工程,如果使用了未公开的API的话,在eclipse下应该是有红叉的。
这些错误不用管,只需要保证程序在Android的源码下能够编译通过即可。
将工程的java文件以及 .xml 和 .mk 按照目录结构拷贝到以下目录:
&Android source folder&/packages/apps/&project name&/
运行以下命令:
$ cd &Android source folder&
$ . ./build/envsetup.sh
$ mmm packages/apps/&project name&
将会生成一个 .jar 文件和一个 .xml 文件。
以上两个文件是应用程序在运行时需要用到的。
调试应用前,需要将两个文件拷贝到设备的相应目录上去:
.jar 文件:/system/framework/
.xml 文件:/system/etc/permissions/
拷贝到设备使用以下命令:
$ sudo adb push &.jar or .xml file path& &path in device&
拷贝完以后需要重启设备。
5、生成在Eclipse可以引用的库文件
在源码下编译的 .jar 文件在Eclipse中是不能使用的,需要单独生成。
在Eclipse下选中工程根目录,选择文件菜单中的导出Export,然后选择jar类型。
导出为jar文件时,只需要选中相应的java文件即可。
这样生成的jar文件仅仅供应用程序在Eclipse下使用,除非是以下情况:
库文件没有使用非公开的API,并且,
应用本身在Eclipse下编译就能够使用,不需要到源码下编译。
暂且为该文件命名为mylibtemp.jar
工程2:Android应用工程
1、建立工程
新建一个Android工程。
Java Build Path -& Libraries
下,导入 mylibtemp.jar 库。
使用 mylibtemp.jar 中的类编写代码。
下面假设最后生成的应用程序文件为 myapp.apk。
2、编辑AndroidManifest.xml文件
编辑工程根目录下的 AndroidManifest.xml 文件。
在 application 下添加以下内容:
&uses-library
android:name=&com.mytest.lib&&
&/uses-library&
其中的 :name 表示所引用的库文件的包名。
其与库工程的 .xml 文件中的 name 应该是一致的。
这样在应用运行时就能够找到相应的 .jar 文件了。
如果引用了多个库,需要添加多个 uses-library 标签。
3、为工程添加makefile文件:
在库文件工程的根目录下创建以下文件:
Android.mk
该文件是用来编译工程的,名称固定。
在文件中加入以下内容:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_JAVA_LIBRARIES := mylib
LOCAL_PACKAGE_NAME := myapp
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
其中的 LOCAL_JAVA_LIBRARIES 表示程序会用到的库文件。
其名成与库工程下的 .mk 文件中 MAKE_JAR 部分下的 LOCAL_MODULE 应该是一致的。
其中的 LOCAL_PACKAGE_NAME 表示应用最后生成的名称。
4、编译应用程序
将工程的 src、res、assets 文件夹以及文件:
Android.mk 和 AndroidManifest.xml
按照目录结构拷贝到以下目录:
&Android source folder&/packages/apps/&project name&/
引用的 .jar 库文件并不需要。
运行以下命令:
$ cd &Android source folder&
$ . ./build/envsetup.sh
$ mmm packages/apps/&project name&
将会生成一个 .apk 文件。
运行以下命令将应用安装到设备:
$ sudo adb install [-r] &apk file path&
以下为制作可执行jar包方法:
转自:http://blog.chinaunix.net/uid--id-60041.html
今天试了一下制作可执行的Jar文件的方法。
具体如下:
首先,创建一个项目文件夹jartest,在jartest目录中建立hello包。
其次,按照以下步骤:
1、在目录hello下编写Hello.java(自己的类名)文件。
示例内容如下:
public class Hello {
&public static void main(String args[]){
&&&&&&&&&&&&&& System.out.println(&Hello World!&);
2、编译生成hello.class文件。
3、在hello的同级目录建立MANIFEST.MF(名字不限制)文件。
示例内容如下:
Main-Class: hello.Hello
此文件最为重要,要点有:
M(必须大写)ain-C(必须大写)lass:(必须有个空格)包名.类名(必须回车)
4、运行明令 jar cvfm a.jar MANIFEST.MF hello/
5、测试运行java -jar a.jar
6、输出结果:
Hello World!
完整的运行过程如下:
==================================================
D:Program FilesJavasrcjartesthello&javac Hello.java
D:Program FilesJavasrcjartesthello&cd..
D:Program FilesJavasrcjartest&jar cvfm a.jar MANIFEST.MF hello/
标明清单(manifest)
增加:hello/(读入= 0) (写出= 0)(存储了 0%)
增加:hello/Hello.class(读入= 422) (写出= 289)(压缩了 31%)
增加:hello/Hello.java(读入= 136) (写出= 108)(压缩了 20%)
D:Program FilesJavasrcjartest&java -jar a.jar
Hello World!
D:Program FilesJavasrcjartest&
==================================================
编译后可以将Hello.java删除。
按照下文http://blog.chinaunix.net/uid--id-60041.html测试了,成功。
制作可执行的的jar包需要添加MANIFEST.MF。不需要执行的jar包,不需要MANIFEST.MF,只需要把用的class文件打包就可以了。 (jar cvf a.jar hello.class hello2.class)
制作可执行的的jar包,注意MANIFEST.MF &,M(必须大写)ain-C(必须大写)lass:(必须有个空格)包名.类名(必须回车),必须回车,
否则运行jar包(java -jar a.jar)时候会出现&&Fail
to load main-class manifest attribute from a.jar& 这个错误。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
制作可执行的的jar包需要添加MANIFEST.MF。不需要执行的jar包,不需要MANIFEST.MF,只需要把用的class文件打包就可以了。 (jar cvf a.jar hello.class hello2.class)
制作可执行的的jar包,注意MANIFEST.MF &,M(必须大写)ain-C(必须大写)lass:(必须有个空格)包名.类名(必须回车),必须回车,
否则运行jar包(java -jar a.jar)时候会出现&&Fail
to load main-class manifest attribute from a.jar& 这个错误。
-----------------------------------------------------------------------------------------------------------------------------------
本文已收录于以下专栏:
相关文章推荐
文章主要参考http://blog.csdn.net/canney_chen/article/details/#reply
公司的项目目标是自己开发一个状态栏,显示时间日期,...
memset、wmemset
对指定字符的设定缓冲区。
void *memset(
void *dest,
步骤如下:
第一、使用apktool.jar文件将apk文件反编译(命令:1),我们会看到下面这些文件:
第二、使用jar2dex.bat文件将jar文件反编译成dex文件(命令:2)
第三、使用b...
char cBuffer[50] ;
TCHAR wBuffer[50];
1、将cBuffer初始化为空格
memset(cBuffer, ' ', sizeof(cBuffer));第三个参数为...
最近在做的项目,有好大一部分都用到这个权限,修改系统时间啊,调用隐藏方法啊,系统关机重启啊,静默安装升级卸载应用等等,刚开始的时候,直接添加权限,运行就报错,无论模拟器还是真机,在logcat中总会得...
一、概述(开发环境Android Studio 1.0.1)
在项目开发过程中,当我们项目积累越来越多,有一些公用的代码可以重用,或者做一些SDK类型项目的时候就需要打包自己的JAR了。之前如果使用...
好多项目都使用到了滑动侧边栏组件,网上有好多例子,但最好的感觉还是GitHub上的Sildingmenu,不过还是不能直接使用的,并且所遇到的问题也不是某一个帖子能覆盖完全的,所以感觉有必要...
将Android打包成jar包供人使用,可利用java的反射技术,获取相应的id.方便使用者替换自己所需要的。
1.新建Android项目:ActivityLibrary,这就是需要我们打包成jar包...
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbobe...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)17:48 提问
关联android library的工程如何生成APK或如何将library变成jar包导入
有一个android工程,关联了一个android library的工程(is library)现在是两个工程,如何把这两个工程合并成一个工程?如果不行如何生成这样子的APK?谢谢
按赞数排序
1、把两个工程合并成一个工程有以下两种方法
1&非常直接的方法:把是is library的那个工程里面的代码(如果有资源文件,也要拷贝资源文件)拷贝到需要这个library的工程里面(一般两个工程的包名不一样,需要用改包名的工具改以下包名,以保持包名的一致性)。
2&第二种方法,就像上面那位所说的,把is library的打包成jar包,用Eclipse自带的打包功能就行(就像上面所描述的那样),当然也可以用命令行。把生成的jar包放到所需要的android工程的libs的文件夹里面(如果没有这个文件夹,就自己新建一个),通过add to build path把这个jar引入到工程。但是这种做法有一个地方时需要注意的,由于jar包里面不含有资源文件(比如说layout、drawable),所以我们要把这些依赖的资源文件也要拷贝到那个android工程里面。
我个人觉得,一般不建议合并工程,因为这样可以保持模块之间的独立性。
2、生成apk这个问题不是很理解。
按照我的意思理解:如果只是生成一个apk,那么就用Eclipse里面的生成apk的工具就可以了。
右键点击那个(is library)的工程,点击Export...选择JAVA,再选择第一个jar file...就可以了,后面的就是选择存放位置
可不可以直接将一个Android项目打包成jar文件
其他相关推荐> 博客详情
am.jar:终端下执行am命令时所需的java库。源码目录:framework/base/cmds/am
android.policy.jar:锁屏界面需要用到的jar包,该包引用了android.test.runner.jar,源码目录:framework/base/policy
android.test.runner.jar:测试应用所需的jar包,该包引用了core.jar,core-junit.ajr以及framework.jar,源码目录:framework/base/test-runner
bmgr.jar:adb shell命令下对Android Device所有package备份和恢复的操作时所需的java库。官方文档:。不过这个android服务默认是Disabled,而且要backup的应用必须实现BackupAgent,在AndroidManifest.xml的application标签中加入android:backupAgent属性。源码目录:framework/base/cmds/bmgr
bouncycastle.jar: java三方的密匙库,网上资料说用来apk签名、https链接之类,官网 :
com.android.future.usb.accessory.jar:用于管理USB的上层java库,在系统编译时hardware层会调用到。源码目录:frameworks/base/libs/usb
com.android.location.provider.jar:
com.android.nfc_extras.jar:NFC外部库。android/nfc/NfcAdapter.java会调用到包中的NfcAdapterExtras.java。源码目录:frameworks/base/nfc-extras
core-junit.jar :junit核心库,在运行*Test.apk时被调用。
core-junitrunner.jar:未知,公司话机上有。
core-tests*.jar:framework下的一系列测试jar包,不做测试时可删除。
core.jar:核心库,启动桌面时首先加载这个。源码目录:&
ext.jar:android外部三方扩展包,源码主要是external/nist-sip(java下的sip三方库)、external/apache-http(apache的java三方库)、external/tagsoup(符合SAX标准的HTML解析器)。其实这个jar包可以添加外部扩展jar包,只需在framework/base/Android.mk中的ext-dir添加src目录即可。
framework-res.apk:android系统资源库。
framework.jar:android的sdk中核心代码。
ime.jar:ime命令所需jar包,用于查看当前话机输入法列表、设置输入法。源码目录:framework/base/cmds/ime
input.jar:input命令所需的jar包,用于模拟按键输入。源码目录:framework/baes/cmds/input
javax.obex.jar:java蓝牙API,用于对象交换协议。源码目录:framework/base/obex
monkey.jar:执行monkey命令所需jar包。源码目录:framework/base/cmds/monkey
pm.jar:执行pm命令所需的jar包,pm详情见adb shell pm,源码目录:framework/base/cmds/pm
services.jar:话机框架层服务端的编译后jar包,配合libandroid_servers.so在话机启动时通过SystemServer以循环闭合管理的方式将各个service添加到ServiceManager中。源码目录:framework/base/service
sqlite-jdbc.jar: sqlite的Java DataBase Connextivity jar包。
svc.jar:svc命令所需jar包,可硬用来管理wifi,power和data。源码目录:framework/base/cmds/svc,详情见:
&以上都是自己的理解或者网上查找资料后获得的,如有误点,欢迎指出。
对的,我看了一下,貌似是DDMS上Location Control用的
对的,我看了一下,貌似是DDMS上Location Control用的好的,谢谢回复!
将jar包放入/ssytem/framework下,然后在init.rc内添加启动项就可以了。init.rc内有framework.jar、service.jar的加载代码,你可以看看。
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥

我要回帖

更多关于 android 调用 jar 的文章

 

随机推荐