导航:首页 > 源码编译 > 安卓r版本编译jar包

安卓r版本编译jar包

发布时间:2022-07-17 13:24:45

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

千锋扣丁学堂Android开发学习为您解答:
jar包有两种,一种是纯粹的库功能,没有main入口函数,故无法直接执行;一种是包含main的可执行包!
如有hello/hello.java文件:
$ cd hello/$ javac hello.java$ java Hello (Hello为类名,如果Hello类具有main函数的话,可以这么执行)
第一种jar包命令

jar cvf hello.jar hello
或者

$ jar cvf hello.jar hello/*.class
通过如下命令查看两个jar的内容:

$ jar tf hello.jarMETA-INF/META-INF/MANIFEST.MFhello/hello/hello.class
显示结果是一样的。

对于第二种可执行jar包,方法其实可以跟第一种一样,然后再修改MANIFEST.MF文件。
在MANIFEST.MF文件中只需要添加一行:

Main-Class: 可执行主类全名(即包含main函数的类名称)
即可。

但也可以预先创建MANIFEST.MF文件,内容跟上面一样,让该文件与hello目录保持在同一级,然后:

$ jar cvfm hello.jar MANIFEST.MF hello
然后就可以通过:

$ java -jar hello.jar
运行了。

===================

在实际项目中,可能需要很多个类文件,建议每个类文件均放到一个独立的文件之中,文件名与该类名应一致,类的声明为“public class xxx”(当然也可以将很多个类放到同一个文件中,但只有一个类能声明成public(即与文件名一致的那个类),这将导致其它未声明为public的类 无法为其它程序调用)。

比如有两个位于同一目录的类文件(它们之间有调用关系),将会被打包成sp_sdk.jar作为库文件使用,文件目录关系如下:

$ ls -l sp/android/printer-rw-r--r-- 1 zwang zwang 944 2011-06-25 17:52 FontProperty.class-rw-r--r-- 1 zwang zwang 1319 2011-06-25 17:51 FontProperty.java-rw-r--r-- 1 zwang zwang 5498 2011-06-25 17:53 PrintGraphics.class-rw-r--r-- 1 zwang zwang 5751 2011-06-25 17:51 PrintGraphics.java
各个java文件的开头需要声明如下(否则其它文件无法import这两个类):

package sp.android.printer;
然后编译命令是:

$ javac sp/android/printer/FontProperty.java $ javac sp/android/printer/PrintGraphics.java
注意编译的位置,因为各自已经声明了“package sp.android.printer;”,所以直接进入到sp/android/printer/目录下是编译不过的。

然后生成jar文件:

$ tar cvf sp_sdk.jar sp
然后就可以创建测试程序调用该库了(测试程序里面就可以“import sp.android.printer.*”了)。

假如测试程序test.java与sp_sdk.jar同一目录,编译及运行命令:

$ javac test.java$ java Test
如果不在同一目录,编译及运行命令:

$ javac -classpath .:/path/to/sp_sdk.jar test.java$ java -cp .:/path/to/sp_sdk.jar Test

❷ 安卓手机怎么运行jar文件

一、
安装java程序方法:
1、在网站上搜索一个apk格式的java虚拟机,下载安装程序后安装在手机上,
安装后手机上“所有程序”中增加此程序的图标,如下图(安装方法与安装
其他程序一样,通过手机浏览器下载安装或通过电脑下载安装包)
2、先下载好自己需要的java安装包放在储存卡上,进入手机已安装好的“java“,
再点击菜单键(手机下方三条横线的图标),点击储存卡选项
3、手机上会自动识别到储存卡上的java软件,点击需要安装的一个软件,我们以安装qq软件为列(注意:并不是保存的所有的java软件都会被识别),选择后点击确定
4、手机会提示选择文件夹,在点击空白处会自动跳转到下一个安装界面
5、界面直接切换到下一步操作界面时,会提示:应用程序手机qq不受信任,
确定继续吗?请点击“确定”
6、点击“确定“后,手机将开始安装java软件
7、安装完成后,手机会直接提示:想要启动应用程序吗?如需要启动就点击“确定“,如不需要就点击”取消“,qq软件就已安装完毕,如果需要使用qq软件,就进入手机上安装的“java”程序,安装的java软件都会在此程序打开后的页面显示,点击“手机qq”即可运行

❸ 求解答,Android源码编译时怎的添加第三方jar包

Android.mk添加第三方jar包

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARIES := xsocket jackson-mapper logging jackson-core javatar log4j
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := test

LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
##################################################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xsocket:lib/xSocket-2.8.14.jar \
jackson-mapper:lib/jackson-mapper-asl-1.6.2.jar \
logging:lib/commons-logging.jar \
jackson-core:lib/jackson-core-asl-1.6.2.jar \
javatar:lib/javatar-2.5.jar \
log4j:lib/log4j-1.2.15.jar
include $(BUILD_MULTI_PREBUILT)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

以上是我的一个项目中所需要的第三方jar包,主要参考了Android源码中的Calculator应用,该应用也引用了一个第三方的jar包arity-2.1.2.jar。
需要注意的是,当你要引用的jar包不止一个时,有两个关键的地方需要注意的。
LOCAL_STATIC_JAVA_LIBRARIES := xsocket jackson-mapper logging jackson-core javatar log4j
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xsocket:lib/xSocket-2.8.14.jar \
jackson-mapper:lib/jackson-mapper-asl-1.6.2.jar \
logging:lib/commons-logging.jar \
jackson-core:lib/jackson-core-asl-1.6.2.jar \
javatar:lib/javatar-2.5.jar \
log4j:lib/log4j-1.2.15.jar
xsocket jackson-mapper logging jackson-core javatar log4j这几个只是名字,可以随便取。LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES后面才是真正其作用的地方。如:
xsocket:lib/xSocket-2.8.14.jar 引用的是lib目录中的xSocket-2.8.14.jar。
还要注意的是 := 不要写成了+=了哦。

附:编写各种类型的Android.mk,出处我忘记了,是以前浏览是拷贝下来的。
一、编译一个简单的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
# Tell it to build an APK
include $(BUILD_PACKAGE)
二、编译一个依赖静态.jar文件的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# List of static libraries to include in the package
LOCAL_STATIC_JAVA_LIBRARIES := static-library
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
# Tell it to build an APK
include $(BUILD_PACKAGE)
注:LOCAL_STATIC_JAVA_LIBRARIES 后面应是你的APK程序所需要的JAVA库的JAR文件名。
三、编译一个需要platform key签名的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
LOCAL_CERTIFICATE := platform
# Tell it to build an APK
include $(BUILD_PACKAGE)
注:LOCAL_CERTIFICATE 后面应该是签名文件的文件名
四、编译一个需要特殊vendor key签名的APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage
LOCAL_CERTIFICATE := vendor/example/certs/app
# Tell it to build an APK
include $(BUILD_PACKAGE)
五、装载一个普通的第三方APK
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Mole name should match apk name to be installed.
LOCAL_MODULE := LocalMoleName
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
六、装载需要.so(动态库)的第三方apk
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := input_android_v1.1_1000e
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
#################################################################
####### the library to /system/lib #########################
#################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := libinputcore.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)
LOCAL_SRC_FILES := lib/$(LOCAL_MODULE)
OVERRIDE_BUILD_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)
include $(BUILD_PREBUILT)
七、编译一个静态java库
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Any libraries that this library depends on
LOCAL_JAVA_LIBRARIES := android.test.runner
# The name of the jar file to create
LOCAL_MODULE := sample
# Build a static jar file.
include $(BUILD_STATIC_JAVA_LIBRARY)
注:LOCAL_JAVA_LIBRARIES表示生成的java库的jar文件名。

❹ 如何解决Android 6.0中无法编译出jar

1、将jar包放入项目里的libs文件夹中。
2、在project选中jar包点击右键"Add as library"。
3、这两步是网上比较容易找到的,但此时项目仍然是无法正常编译的,这时需要在项目的build.gradle文件里的dependencies节加入 dependencies
{
compile files('libs/android-support-v4.jar')
compile files('libs/xxxx.jar')
}
4、此时项目正常编译并运行了,但当自己的代码中真正创建了引用jar里的类实例时,有可能系统会抛出异常NoClassDefFoundError,这个时候可以按以下步骤操作:

 进入命令提示符窗口。
 定位到项目的根目录,即build.gradle所在的目录。
 运行 "{android studio 安装目录}\sdk\tools\templates\gradle\wrapper\gradlew.bat" clean
 重新编译运行项目

❺ android gradle 怎么编译framework.jar

1,首先将framework.jar拷贝到项目的/libs文件夹中,然后右键framework.jar文件,然后Add as Library ,再选当前的mole

完了之后,在你的Mole的build.gradle中会增加了

这个时候我们已经添加了framework.jar包,但是我们还有改变framework.jar的作用域属性,右键你的mole,Open Mole Setting,然后将framework.jar的Scope改为 Provided

❻ android如何将res文件夹下的资源打包到jar中

1:我现在正好也是碰到这个问题,就算把res文件夹打包进jar包中也不可以使用,如果jar包中某些类牵涉到res文件夹下的文件,则报错。
2:你所说的像android sdk那种方式,你可以看一下android.jar这个包,里面的res目录显示也是灰色的,里面的图片或者xml文件你同样无法查看,所以不存在想android.jar那种方式一样的情况。
3:有一种折中的方式,不过需要你的工程源码。即在eclipse下,导入你的工程,然后右键----->Properties----- >Android------>Library 下面的Is Library 选中。 之后在你新建的工程中右键----->Properties----- >Android------>Library 右侧 Add 选中你的工程名(jar)即可。

❼ Android怎么将开源库编译成jar包

1. 开源库的jar可以直接拿来在Android里面编译使用,可能涉及一些依赖的库。

2. 如果需要编译Jar包,有两种选择:
第一种: 基于Java方式的Jar包,工程导入后,通过export方式导出的jar。
第二种: 基于Android方式的Jar包,工程通过Android lib project的方式导入的。具体步骤:
new->project...->Android Project from Existing Code->填入路径->Finish->右击工程->Export...->Java->JAR file
理论上如果开源库不是基于Android开发的话,第二种方式导出Jar,估计需要比较久的解决依赖的过程。

❽ 我把android.jar包进行反编译,为什么只有方法而没有实现

1、混淆安卓自带了混淆法,具体请网络关键词:proguard,但是混淆只是加大了反编译的难度,可以这么说,即便混淆了,只要有足够的耐心,破解指日可待。2、使用linux的静态链接so库这类似于windows平台的dll库,如果使用了so库,那么这个安卓程序几乎不可能被反编译到原来的代码,所以,重要的代码可以放入so库。但是,道高一尺,魔高一丈,即便是so库,也还是会有法能破解,但是,要获得真正的源码,几乎不可能无源代码的安卓APK反编译、修改,只有你想不到,没有做不到@@724949472

❾ android 源码怎么编译android.jar

例如:你不想编译music进image中,你就在该文件里PRODUCT_PACKAGES :=这一项下的Music删除就可以了同理,你想把自己的app编译进image中,你先写好编译用的 Android.mk 文件,然后去到上面所说的文件里在 PRODUCT_PACKAGES :=这一项添加对应的app.

阅读全文

与安卓r版本编译jar包相关的资料

热点内容
oracle批处理命令启动服务 浏览:2
谁鼓励c程序员向c转变 浏览:985
安卓发说说改苹果11用什么软件 浏览:720
河源文档加密电话 浏览:175
python适用于什么 浏览:522
app畅读模式怎么开 浏览:907
plc编程笔记本电脑 浏览:809
专业程序员招聘网站 浏览:475
安卓如何微信置顶文案 浏览:815
linuxsocket文件描述符 浏览:494
java中的model 浏览:864
海康威视手机客户端显示加密 浏览:29
阿里云服务器地区选错了有影响吗 浏览:16
重庆空气压缩机 浏览:205
邮政银行app怎么交小儿医保 浏览:82
函数式编程优势 浏览:647
qt使用yasm编译 浏览:681
黄金指标源码怎么用 浏览:495
怎么用vim运行python 浏览:681
3d命令面板在哪里找 浏览:894