android源碼編譯jar包
⑴ android 開發DICOM, 想要用dcmtk 怎麼編譯成jar
目前,比較流行的java反編譯工具有近30種,其中有三款堪稱精品:一、應用廣泛的JAD在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:FrontEndPlus、mDeJava、DecafePro、CavajJavaDecompiler、DJJavaDecompiler、NMI』sJavaClassViewer和國產的JAVA源代碼反編譯專家。JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD在JAVA反編譯領域中的尊貴地位。JAD是使用MicrosoftVisualC++開發的,運行速度非常快,可以處理很復雜的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由於JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下(以JAD1.5.8f版本為例):-d-用於指定輸出文件的目錄-s-輸出文件擴展名(默認為:.jad),通常都會把輸出文件擴展名直接指定為.java,以方便修改的重新編譯。-8-將Unicode字元轉換為ANSI字元串,如果輸出字元串是中文的話一定要加上這個參數才能正確顯示。最常用的反編譯指令如下所示:Jad–dc:\javasource–s.java-8javatest.class這條指令將當前目錄下的javatest.class反編譯為javatest.java並保存在c:\javasource目錄里,其中的提示輸出為中文,而不是Unicode代碼。二、源碼開放的JODEJODE是全球最大的開源項目網站Sourceforge.net的成員,在所有的JAVA反編譯器中,JODE的反編譯效果是最好的,尤其是對付一些常見的加密手段,例如混淆技術等,更是出類拔粹。JODE本身也是純JAVA開發的,最近越來越多的JAVA反編譯軟體也選擇JODE來做它們的核心引擎,例如JCavajJavaDecompiler、BTJ(BackToJava)、jEdit』sJavaInsightplugin等。JODE是一個可運行的JAR文件,在windows環境下雙擊即可運行。需要特別說明的是,JODE不是通過常規的Open->File的方式來載入JAVA編譯後的類文件(*.class)或是類包(*.jar)的,而是通過在Options菜單中的SetClasspath來實現的,單獨的類文件可以將它的上一級目錄作為Classpath輸入,然後再選擇ReloadClasspath即可。新加入的類包或是類的名字會在左側窗口出現,雙擊類包名可以目錄樹結構,雙擊需要反編譯的類名則在右上角的窗口中直接顯示反編譯後的源代碼。三、獨樹一幟的DAVADAVA不是一個獨立的JAVA反編譯器,而是JAVA代碼優化工具Soot的一部分。Soot和JODE一樣是純JAVA開發的,也是一個獨立的JAR包,但卻不能通過雙擊直接運行,而是象JAD一樣在命令行狀態運行。Soot對環境變數的配置要求非常嚴格,通常情況下要對CLASSPATH做如下設置:SetCLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.;其中的c:\sootdir\是下載的soot類包放置的路徑,CLASSPATH末尾的.;代表了當前目錄,如果不加上這個的話Soot經常會報一個找不到類的錯誤。DAVA是作為Soot的一個參數使用的,通常的用法如下:Javasoot.Main–fdava–dc:\javasourcejavatest注意最後的類名不用帶.class後綴,因為它默認是處理class文件,這個操作與前述的JAD的參數效果相同。DAVA採取了流程優化的方式進行反編譯,與傳統反編譯思路不盡相同,但卻對改變流程類的加密方法有獨特的反編譯效果。上述的三種工具各有千秋,但效果都非常不錯。經測試,它們基本上都可以把JDK自帶的一些常式完全反編譯,然後不加任何修改可再編譯成功,並能正常運行!
⑵ 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鏈接之類,官網 :http://www.bouncycastle.org/java.html
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
⑶ android 項目如何導出帶源碼的jar包
用rar壓縮軟體都可以打開的
⑷ 怎麼將jar包源碼導入android studio
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源碼編譯時怎的添加第三方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文件名。
⑹ 求android4.4 framework源碼編譯 classes.jar
安卓4.4_r3源碼編譯出來的幾個jar包,包括bouncycastle_intermediates/classes.jar、core_intermediates/classes.jar、framework_intermediates/classes.jar,如果大家還有別的jar包需要,請提出,我會盡量幫大家找的。
⑺ Android中將資源文件打包進jar文件出現的問題
可以提供個lib project (http://developer.android.com/tools/projects/projects-eclipse.html)
先建個lib project,將 res 的內容拷過去,
將源碼編譯弄成jar包,放到lib project的libs路徑下
使用者可以直接將這個lib project導入到自己的項目中
PS: 注意設置好 proguard,如果有用到的話
⑻ 如何將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包項目目錄下;
⑼ 安卓app撥號不轉撥號界面怎麼設置
創建一個Intent。
要實現撥號程序可能很簡單,一個簡單的Intent就能實現,從發出意圖到真正實現撥號的代碼中間還執行了很多其他方法,這都是android底層源碼自動實現的,其中就包含了啟動撥號的Activity。要想實現不彈出撥號界面就實現撥號,就必須繞過中間這些方法,直接調用framework層中的撥號方法。詳情可以去看下別人寫的android撥號流程,就可知道真正實現撥號的方法。
一開始是想通過反射調用底層方法,但是當初試過,好像不能實現,所以最後直接調用底層方法,由於android本身並未提供相關的類或方法,所以必須引用額外的jar包(將android源碼編譯打包成jar)。這里用的是某位大神將android2.2的部分源碼編譯成的jar包。
⑽ 我把android.jar包進行反編譯,為什麼只有方法而沒有實現
1、混淆安卓自帶了混淆法,具體請網路關鍵詞:proguard,但是混淆只是加大了反編譯的難度,可以這么說,即便混淆了,只要有足夠的耐心,破解指日可待。2、使用linux的靜態鏈接so庫這類似於windows平台的dll庫,如果使用了so庫,那麼這個安卓程序幾乎不可能被反編譯到原來的代碼,所以,重要的代碼可以放入so庫。但是,道高一尺,魔高一丈,即便是so庫,也還是會有法能破解,但是,要獲得真正的源碼,幾乎不可能無源代碼的安卓APK反編譯、修改,只有你想不到,沒有做不到@@724949472