當前位置:首頁 » 安卓系統 » 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-11-24 01:15:36 瀏覽:951
T型存儲器 發布:2024-11-24 01:01:08 瀏覽:371
android操作串口 發布:2024-11-24 00:56:02 瀏覽:222
foxpro資料庫管理系統 發布:2024-11-24 00:44:53 瀏覽:822
python微信爬蟲 發布:2024-11-24 00:44:12 瀏覽:562
東北大腳本 發布:2024-11-24 00:42:26 瀏覽:533
山東省域名伺服器地址雲主機 發布:2024-11-24 00:42:23 瀏覽:521
安卓71的n是什麼 發布:2024-11-24 00:27:27 瀏覽:390
存儲一個國際碼需要幾個位元組 發布:2024-11-24 00:26:41 瀏覽:958
javalistadd 發布:2024-11-24 00:26:39 瀏覽:429