編輯:關於Android編程
Android中使用第三方庫可能有兩種:Java庫.jar和原生庫.so/.a,如果只是做上層APK開發,這兩種庫都可以通過Eclipse集成開發環境進行集成,如果是平台級開發,則都可通過源碼集成。本文整理這兩種集成方式使用步驟,以下假設程序myapp,集成Java庫位myjar.jar,原生庫libmyso.so/libmya.a。其中,so庫要盡量參照Android引用庫規范編寫,內部函數命名也要規范(盡管不規范也可能可以使用),.a庫為靜態聯編,一般面向C/C++引用使用,如果Java上層使用,一般需要通過動態庫(.so)轉接。
A.當前工程myapp下創建libs目錄
B.使用Eclipse導入myjar.jar包即可
A.當前工程myapp下創建libs/armeabi目錄
B.把libmyso.so庫文件拷貝到libs/armeabi目錄下即可,因為libmyso.so庫為原生庫,一般做運行時加載的動態庫。
C.Java文件引用加載庫
最終生成的apk會自動把myjar.jar和libmyso.so文件打包進去。
源碼集成第三方庫也至少有兩種方式:C/C++鏈接方式和Android Prebuild方式,當然似乎前者無法集成myjar.jar包。C/C++方式
靜態庫和動態庫一般放置在libs/armeabi目錄下,如果庫文件較多,也可以單獨另立目錄存放,只要對應修改庫文件路徑(搜索路徑即可)。
修改Android.mk文件,示例鏈接libmya.a靜態庫:
LOCAL_LDFLAGS := $(LOCAL_PATH)/libs/armeabi/libmya.a
1) myjar.jar包集成
A.在packages/app/myapp下創建libs目錄,這裡假設程序包放在packages/app下面。
B.把myjar.jar包拷貝到該目錄下
C.修改Android.mk文件,示例如下:
include $(CLEAR_VARS) LOCAL_STATIC_JAVA_LIBRARIES := myjar LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=myjar:libs/myjar.jar include $(BUILD_MULTI_PREBUILT)
其中,
LOCAL_STATIC_JAVA_LIBRARIES為引用jar庫的別名,可以隨便取名,一般就是用庫名稱就可以了。
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES為指定prebuilt java庫規則,格式為:別名:jar文件的完整路徑,這裡的別名就是LOCAL_STATIC_JAVA_LIBRARIES所取的名字。
源碼開發時,myapp.apk將會連同myjar.jar打包,一起放在out/target/product/<prjname>/system/app/目錄下;
2) libmyso.so集成
A.在packages/app/myapp下創建libs/armeabi目錄
B.把.so庫拷貝到libs/armeabi目錄下
C.修改Android.mk配置文件,添加如下:
include $(CLEAR_VARS) LOCAL_STATIC_LIBRARIES := libmyso LOCAL_PREBUILT_LIBS :=libmyso:libs/armeabi/libmyso.so include $(BUILD_MULTI_PREBUILT)
其中,
LOCAL_PREBUILT_LIBS指定prebuilt so庫規則,格式:別名:so文件路徑。
源碼開發時,這個libmyso.so將會被放在out/target/product/<prjname>/system/lib/下,其中system/lib為加載動態庫時缺省搜索路徑。
此外,libmyso.so還可以集成到build/core/user_tags.mk中,不過一般不建議那麼做,我們應盡量減少修改系統級配置。
3) 源碼集成編譯
make prjname mm /packages/apps/myapp
以上指令是在MTK ANDROID平台上使用,其它平台可能不同。
隨著公司新業務的起步由於原有APP_A的包已經很大了,所以上邊要求另外開發一款APP_B,要求是APP_A和APP_B賬號通用且兩個APP可以相互打開。賬號通用也就是說在
最近下了個攜程App,點開首頁看,注意到其按鈕在點擊的時候並不是我們經常看到的變色效果,而是先收縮,放開時,再回到原來的大小,感覺這個效果雖然小,但是感覺非常新穎,於是決
高效計算——RenderScriptRenderScript是安卓平台上很受谷歌推薦的一個高效計算平台,它能夠自動把計算任務分配到各個可用的計算核
1080P全高清屏幕雖然可為手機帶來更細膩的視界,但同時也會增加系統負載,拖慢游戲速度(和同配置720P手機相比)。那麼,如何才能提高1080P手機的游戲速