導航:首頁 > 操作系統 > 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包相關的資料

熱點內容
程序員那麼可愛歌曲完整版 瀏覽:904
為什麼購買pdf 瀏覽:43
操作系統代碼編譯 瀏覽:483
程序員東北大學 瀏覽:426
編譯忽略空字元 瀏覽:117
多店鋪阿里雲伺服器教程 瀏覽:378
單片機求初值 瀏覽:420
安卓機如何在電腦備份圖片 瀏覽:925
ca證書加密機價格 瀏覽:798
天乾地支年份演算法 瀏覽:796
程序員打造的視頻 瀏覽:7
java和php通信 瀏覽:680
為什麼黑程序員 瀏覽:163
程序員男生 瀏覽:456
戴爾文件夾內文件怎麼置頂 瀏覽:582
雲伺服器6m網速 瀏覽:722
vivo手機中國聯通伺服器地址 瀏覽:862
工程總控編譯失敗 瀏覽:707
燕趙紅楓app如何下載 瀏覽:867
php查殺軟體 瀏覽:878