當前位置:首頁 » 安卓系統 » android第三方so

android第三方so

發布時間: 2024-10-20 07:37:52

① android 使用第三方.so 要.mk文件嗎

1.在project/jni目錄下創建prebuilt子目錄(目錄名可自定義). 2.將第三方.so放到prebuilt中,並創建Android.mk, 內容如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := xxx LOCAL_SRC_FILES := libxxx.so include $(PREBUILT_SHARED_LIBRARY) 3.在project/jni/Android.mk中加入 LOCAL_SHARED_LIBRARIES := xxx 4.在project/jni/android.mk的最後加入 include $(LOCAL_PATH)/prebuilt/Android.mk 5.運行cygwin, 到project目錄下, 運行$NDK/ndk-build

② android so文件怎麼用

相信很多朋友在使用Androidstudio開發中,遇到過如何引入第三方so文件的問題,然而第三方官方僅僅給出了ADT環境下的集成方式。

Android studio中默認使用的是gradle編譯方式,與ADT編輯方式不一樣,那麼so文件應當如何引入呢?


其實很簡單。這里以集成JPUSH為例,看一下so文件如何引入到編譯環境,最終到JNI直接可以調用該so文件。


首先,在我們的Mole的根目錄中建立libs目錄,將jpush集成SDK中的so文件分別拷入,截圖如下:



然後就是編寫我們的build.gradle文件。

關於so文件引入的配置很簡單,代碼配置如下:


[html]view plainprint?

tasknativeLibsToJar(type:Zip,description:""){

destinationDirfile("$projectDir/libs")

baseName"Native_Libs2"

extension"jar"

fromfileTree(dir:"libs",include:"**/*.so")

into"lib"

}

tasks.withType(JavaCompile){

compileTask->compileTask.dependsOn(nativeLibsToJar)

}




自定義一個任務,在其中指定項目所依賴的so文件的目錄,這里用了**/*.so來寫,為了省事,指定需要拷入的目錄 into "lib",那麼動態運行庫就被拷入到lib目錄中。

完整的build.gradle文件如下:


[html]view plainprint?

applyplugin:'com.android.application'

android{

compileSdkVersion21

buildToolsVersion"21.1.0"

defaultConfig{

applicationId"com.wujay.footerballstar"

minSdkVersion8

targetSdkVersion21

versionCode1

versionName"1.0"

}

buildTypes{

release{

runProguardfalse

('proguard-android.txt'),'proguard-rules.pro'

}

}

tasknativeLibsToJar(type:Zip,description:""){

destinationDirfile("$projectDir/libs")

baseName"Native_Libs2"

extension"jar"

fromfileTree(dir:"libs",include:"**/*.so")

into"lib"

}

tasks.withType(JavaCompile){

compileTask->compileTask.dependsOn(nativeLibsToJar)

}

}

dependencies{

compilefileTree(dir:'libs',include:['*.jar'])

compile'com.android.support:appcompat-v7:21.0.0'

compilefiles('libs/jpush-sdk-release1.7.2.jar')

compilefiles('libs/umeng_sdk.jar')

compilefiles('libs/libammsdk.jar')

}

③ 請教關於android linux動態庫.so的載入調用

1.在使用第三方的.so庫做android開發,發現僅僅放到AndroidProject/libs/armeabi/libminivenus.so這個位置,使用System.loadLibrary載入起來可以正常使用。
2.庫的名字必須是libminivenus.so,不可以改名字。也不可以使用System.load從其他地方載入(非SD卡)。如果將庫的名字或者載入位置改動,調用的jni介面就返回錯誤。
3.libminivenus.so中確實有libminivenus的欄位,將庫的名字與該欄位一起修改結果無效。

④ android注入so怎麼使用

dhrurthr64uhtdh

⑤ Android如何引入及調用第三方.so文件

APP開發時,可能會碰到引入第三方so文件的需求,可以根據以下步驟引入

一、新建jnilibs目錄,或者直接放入libs目錄

二、修改build.gradle文件,添加sourceSets jniLibs.srcDirs配置,如果放入libs,那麼srcDirs應配置為libs

前兩步已經說明如何引入so文件,那麼如何調用.so文件裡面的方法呢?拷貝或新建調用類,注意包名,在類中創建相應方法,假設C文件的方法為Java_a_b_c_JniUtils_test,需創建的類及方法:

熱點內容
電腦數據如何傳給伺服器 發布:2024-10-20 09:23:17 瀏覽:772
西門子編程代碼 發布:2024-10-20 09:19:00 瀏覽:261
計算器代碼java 發布:2024-10-20 09:18:54 瀏覽:986
哈弗h2哪個配置有天窗 發布:2024-10-20 09:17:17 瀏覽:807
ftp每隔5分鍾就斷一次連接 發布:2024-10-20 09:09:43 瀏覽:483
私有雲盤源碼 發布:2024-10-20 09:08:15 瀏覽:478
電腦的上傳速度怎麼調 發布:2024-10-20 09:01:18 瀏覽:872
我的世界伺服器淬煉要多少錢 發布:2024-10-20 08:54:10 瀏覽:952
雲伺服器生產環境搭建 發布:2024-10-20 08:48:47 瀏覽:102
堆存儲和堆 發布:2024-10-20 08:48:09 瀏覽:882