Android.mk编译java动态库
生活随笔
收集整理的這篇文章主要介紹了
Android.mk编译java动态库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一, java動態庫程序代碼
在Anroid層根目錄新建study/java_lib/lib目錄, 并創建文件名:
com/wq/mytestjar/Test.java
二, java動態庫Android.mk編寫
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_DEX_PREOPT = false LOCAL_MODULE := libmytest include $(BUILD_JAVA_LIBRARY)三, 編譯java動態庫-jar
進入到該目錄:study/java_lib/lib
然后執行mm命令編譯
生成的目標文件有如下:
四,主程序使用鏈接庫代碼
新建文件study/java_lib/main/TestDemo.java
study/java_lib/main/Android.mk編寫如下:
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_JAVA_LIBRARIES := libmytest LOCAL_DEX_PREOPT = false LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_MODULE := TestDemo include $(BUILD_JAVA_LIBRARY)生成的目標文件有如下:
中間文件:out\target\product\sl8541e_cus_go\obj\JAVA_LIBRARIES\TestDemo_intermediates\javalib.jar 目標文件:out\target\product\sl8541e_cus_go\system\framework\TestDemo.jar五、在java_lib目錄下面添加Android.mk文件
include $(call all-subdir-makefiles)備注:該行腳本作用就是把把主程序main和庫文件一起編譯
編譯出來的文件
六,運行
1、將編譯好的jar動態庫推進到設備/data/local/tmp目錄下面去
2、進入/data/local/tmp目錄
adb shell cd /data/local/tmp3、進入到設備中,設置將要執行的jar包的classpass,不設置將無法執行:
export CLASSPATH=/data/local/tmp/TestDemo.jar:/data/local/tmp/libmytest.jar4、運行該jar包
app_process /data/local/tmp com.wq.main.TestDemo運行日志如下
sl8541e_cus_go:/data/local/tmp # ls TestDemo.jar device-explorer libmytest.jar sl8541e_cus_go:/data/local/tmp # app_process /data/local/tmp com.wq.main.TestDemo test sum : 12 sl8541e_cus_go:/data/local/tmp # ls -al
總結:從日志中可以分析看出使用app_process 來運行TestDemo程序,然后會把該程序生成odex和vdex文件
總結
以上是生活随笔為你收集整理的Android.mk编译java动态库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提高企业计算机网络安全意识,对企业计算机
- 下一篇: 2021-06-09