导航:首页 > 操作系统 > android源码编译jar包

android源码编译jar包

发布时间:2022-09-11 14:25:40

① 如何将android源码生成eclipse可用的jar包

1.新建project
在eclipse上新建一project 选择General/Project 点击next,输入project
name:将use default
location的勾去掉后,点击下面的Browse按钮,载入android上的fmmanager源码;点击finish;
这时会发现,新建的project有红叉,不过这不影响我们;
2.生成jar包
在上一步新建的project上右键,选择export ,java/JAR file 点击next,出现的JAR file specifivation界面, 这里呢可以将select the resources to export下的右边框勾选的项去掉,
接着,在select the export destination中指定生成的jar包的位置;点击finish;这样就生成了可用在eclipse上的jar包;
3导入jar包:

需要引用jar包的project上右键选择最下面的properties,选择Java Build Path,之后在右边的java bulid
path中选择Libraries 选择add external JARS;
找到刚才生成的jar包,完成后点击ok,这样会在当前项目下新建一Referenced Libraries 其中就包含了刚刚导入的jar包;这里
我们最好将要导入的jar包放在需要引用jar包项目目录下;

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

不是很明白你提问的意思,按照我的理解就是把jar放到项目的lib文件夹下,然后右键点击该jar,选择build path - add to build path,这样就算是导入成功了。

③ 如何把为android-support-v4源码打包成jar-Android开发问答

android-support-v4源码打包成jar前提,是更新了相应SDK的源码:
1. 找到Android安装目录:假设安装在C盘
C:\Program Files\Android\android-sdk\extras\android\compatibility\v4\src\java

2. 切换到该目录,执行命令,将Java代码打包成jar包
jar cf android-support-v4-sources.jar

源码关联步骤为:
1.移除 Android Dependencies
2.在libs下 右键 android-support-v4.jar Build Path ->Add To Build Path

④ 如何将android源码生成eclipse可用的jar包

1.新建project
在eclipse上新建一project 选择General/Project 点击next,输入project name:将use default location的勾去掉后,点击下面的Browse按钮,载入android上的fmmanager源码;点击finish;
这时会发现,新建的project有红叉,不过这不影响我们;
2.生成jar包
在上一步新建的project上右键,选择export ,Java/JAR file 点击next,出现的JAR file specifivation界面, 这里呢可以将select the resources to export下的右边框勾选的项去掉,
接着,在select the export destination中指定生成的jar包的位置;点击finish;这样就生成了可用在eclipse上的jar包;
3导入jar包:
在需要引用jar包的project上右键选择最下面的properties,选择Java Build Path,之后在右边的java bulid path中选择Libraries 选择add external JARS; 找到刚才生成的jar包,完成后点击ok,这样会在当前项目下新建一Referenced Libraries 其中就

⑤ 求解答,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.bp语法

注意 :关于Android.bp的权威解释可以参见 android.bp权威文档
Google官方语法文档 https://android.googlesource.com/platform/build/soong

从前面的列子可以看出定义一个模块从模块的类型开始,模块有不同的类型,如前面例子中的cc_library_shared,当然类型还有很多种,譬如 cc_binary、android_app 、cc_library_static 等等。模块包含一些属性格式为“property-name:property-value”,其中name属性必须指定,其属性值必须是全局唯一的。

其中默认模块可用于在多个模块中重复相同的属性

srcs 属性以字符串行表的形式指定用于编译模块的源文件。您可以使用模块引用语法 “:” 来引用生成源文件的其他模块的输出,如 genrule 或 filegroup。
实例说明:

我们知道Android.mk中可以定义变量,当然作为新编译系统中替代Android.mk的Android.bp也是一定存在,更加何况Android.mk还可以一定条件的转换成Android.bp。

变量范围限定为声明它们的文件的其余部分,可以使用 “=” 号赋值, 但是不能使用 “:=” 赋值。变量是不可变的,但有一个例外它们可以附上+= 赋值,但仅在变量被引用之前。

下面我们看一下正确使用变量的列子:

我们知道Android.mk中可以进行注释,当然Android.bp里面也可以,Android.mk中使用 # 然后添加注释,Android.bp使用单行注释 // 和多行注释 /* */ 两种方式。

具体支持以下几种类型:

String类型、字符串行表类型和Map类型支持操作符 + 。

Android.bp可以支持android_app、cc_binary、cc_binary_host等多种类型,具体定义在Android源码的 build/soong/androidmk/cmd/androidmk/android.go 可以查看,具体如下:

Android.bp可以支持多种预编译类型,具体定义在Android源码的 build/soong/androidmk/cmd/androidmk/android.go 可以查看,如下图所示:

例如: system/core/libusbhost/Android.bp aosp9.0开始

Android.bp是一门实战性的东西,光说不练没有啥用,说再多不如直接开练来得舒服。那就直接开始手撕实例了,让我们开战吗!
下面几种库编译类型:
2.1 动态库类型
最终编译为so包

**2.2 java库类型: **
最终编译为jar包

2.3 Andorid应用类型
最终编译为apk包

转自: https://blog.csdn.net/tkwxty/article/details/104395820

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

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

⑧ android怎么在源码导入jar包

在Android源码编译成功的基础上重新编译带自己API的android.jar需要进行以下几步操作:

1、添加自己源代码,在Android源码frameworks/base目录下新建一个文件夹保存代码,如tv,以包的形式命名添加的文件所在的路径,如/tv/java/android/tv,添加的java文件开头定义的包即是编译成功的class文件所在的包。
2、修改makefile文件
2.1 修改build/core/pathmap.mk文件
在FRAMEWORKS_ BASE_ SUBDIRS变量后添加tv\,代码如下(makefile文件中的语句以Tab键空格开头)
FRAMEWORKS_BASE_SUBDIRS := \ $(addsuffix /java, \ core \ graphics \ location \ media \ opengl \ sax \ telephony \ wifi \ vpn \ keystore \ tv \ )
2.2 修改frameworks/base/Android.mk 文件
在packages_to_ document变量后添加自己源代码的包名称,如android/tv,结果如下(makefile文件中的语句以Tab键空格开头)
packages_to_document := \
android \
javax/microedition/khronos android/tv 3 在ubuntu命令行终端使用如下命令进行编译:
make clean
make update-api
make PRODUCT-sdk-sdk
最后一行也可以用如下两个命令代替: make –j4 make sdk 4 编译结果
4.1 android.jar文件所在的目录为
/out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar并在/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_interme diates/src目录下重新以package形式组织所有生成到android.jar中的源代码。 4.2 SDK所在目录为
out/host/linux-x86/sdk/,生成的sdk文件目录和压缩包为: android-sdk_eng.xxx_linux-x86
android-sdk_eng.xxx_linux-x86.zip(xxx为自己android源码所在的文件名)

阅读全文

与android源码编译jar包相关的资料

热点内容
净化车间门算法 浏览:934
安卓怎么搞jpg 浏览:544
如来佛祖命令雷神去下界 浏览:854
新电脑管家下载好怎么解压 浏览:528
php获取接口数据 浏览:763
最后的命令 浏览:921
如何添加手机app桌面快捷图标 浏览:427
ui设计师与程序员 浏览:417
寿司pdf 浏览:828
pythonbg是什么 浏览:248
c数值算法程序大全 浏览:785
android整点报时 浏览:221
稀土pdf 浏览:536
单片机电子锁 浏览:596
通达信机智资金流指标公式源码 浏览:216
php安装xsl扩展 浏览:842
python如何使用help 浏览:367
上汽荣威app在哪里查询 浏览:903
冰柜压缩机温度108 浏览:720
阿里云邮smtp服务器地址 浏览:254