通過Android.mk文件在源碼下生成jar

在packages/app/service下建一個文件夾build_jar,在jar_test下建立test文件夾,其次按照以下步驟:

1.在目錄test下編寫Test.java文件。
示例內容如下:

package test;
public class Test{
    public static void main(String args[]){
        System.out.println("This is text");
    }
}

2.在test的同級目錄下建立Android.mk文件。
示例內容如下:

LOCAL_PATH :=$(call my_dir)//指的就是當前的相對路徑
include $(CLEAR_VARS)  //清除舊變量
LOCAL_MODULE_TAGS :=optional //如果沒有這句話全編譯user版本時,不會編譯這個模塊
LOCAL_SRC_FILES :=test/Test.java
LOCAL_MODULE :=Test //設置新變量名字
include $(BUILD_STATIC_JAVA_LIBRARY)  //調用編譯函數,

3.在build_jar目錄下執行 mm
注:執行mm命令,要先執行sourse build/envsetup.sh
該語句是編譯源碼時候用來配置環境的意思

4.BUILD_JAVA_LIBRARY和BUILD_STATIC_JAVA_LIBRARY區別:
簡單的說,jar包其實就是一個zip格式的壓縮包,那麼 :

1)BUILD_JAVA_LIBRARY編譯出來的jar包,裏面是DEX格式的文件。如果用戶想用這個jar包放到Eclipse來做Android App的開發,
Eclipse是不認識這種格式的文件的,通常會報錯:Conversion to Dalvik format faild with error 1:

2)而BUILD_STATIC_JAVA_LIBRARY編譯出來的jar包,裏面每個java文件對應的class文件都單獨存在,
顧名思義,每個java文件裏面用到的變量都被靜態編譯到了class內部,這種格式的jar包可以在Eclipse裏面導入並正常使用,但是可能存在一定的兼容性隱患

5.另外執行framework編譯後路徑:

command:
./make.sh framework
path:
out\target\common\obj\JAVA_LIBRARIES\framework_intermediates

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章