日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android开发】NDK开发(3)-jni开发技巧

發(fā)布時(shí)間:2024/1/17 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android开发】NDK开发(3)-jni开发技巧 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、??????jni打印調(diào)試信息

  1、 ? ?在Android.mk文件中添加: ? ?

LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog

  2、 ? ? 在?.c文件中添加:

#include <android/log.h>

  3、 ? ? ?打印log信息:

__android_log_print(ANDROID_LOG_INFO, "INIT_GETGPSINFO", "get_gps_info");//或者 __android_log_print(ANDROID_LOG_INFO, "INIT_GETGPSINFO", "lan = %f", lan);

?

二、??????對(duì)第三方?.so或?.so.1動(dòng)態(tài)鏈接庫的調(diào)用

?如果在工程中用到了對(duì)第三方?.so或?.so.1鏈接庫的調(diào)用,直接調(diào)用庫中的方法名是行不通的,可以使用dlopen及dlsym函數(shù),用法如下:

1 //打開鏈接庫 2 3 void *handle = dlopen("libapi.so.1", RTLD_NOW); 4 5 //聲明“本地”方法,第一個(gè)int是方法返回類型,get_number是方法名,第二個(gè)括號(hào)中的int是參數(shù)類型 6 7 int (*get_number)(int); 8 9 //將聲明“本地”方法與類庫中方法進(jìn)行綁定,只寫方法名,不寫參數(shù) 10 11 get_number = dlsym(handle, "get_number"); 12 13 //方法調(diào)用 14 15 int a = 0; 16 17 int number = get_number(a);

?

三、??????System.Load()函數(shù)的路徑

  在(二)中,引用第三方的鏈接庫需要將其添加到工程中,但是使用方法System.LoadLibrary(“l(fā)ibapi.so.1”)?往往行不通,可以使用System.Load()方法。

? ? ?System.Load()方法需要提供鏈接庫的絕對(duì)路徑,這個(gè)絕對(duì)路徑是相對(duì)于Android的文件系統(tǒng)的,可以把libapi.so.1文件放在system/lib目錄,調(diào)用方法為:

System.load("/system/lib/libapi.so.1");

?

四、??????使用adb push文件到Android文件系統(tǒng)

如果有需求要將文件拷貝到模擬器的文件系統(tǒng)中,那么你想到的方法可能是講模擬器root,但是,這一步往往比較困難,但是使用如下方法可以將文件拷貝到文件系統(tǒng)中,而不需要root。

1、?????????先新創(chuàng)建一個(gè)AVD “myAVD”

2、?????????在命令行輸入:

emulator -avd MyAndroid -partition-size 128 -no-snapshot-load

3、?????????待模擬器完全打開之后,輸入以下命令以獲得對(duì)/system系統(tǒng)目錄的寫權(quán)限:

adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system

4、?????????使用push命令將文件拷貝到模擬器文件系統(tǒng)中(su為文件名):

adb push su /system/xbin/

想要查看模擬器的文件系統(tǒng),可使用adb shell命令進(jìn)入模擬器的終端。

另:給文件執(zhí)行權(quán)限:

adb shell chmod 06755 /system/xbin/su

?

五、??????使用無線ADB

使用無線ADB,省去了數(shù)據(jù)線的鏈接方便極了!

如果項(xiàng)目有需求,Android需要同時(shí)連接PC和外部模塊,那么無線ADB會(huì)極大的方便你的程序調(diào)試。

?

?

2014-03-17?

轉(zhuǎn)載于:https://www.cnblogs.com/youthpasses/p/3845029.html

總結(jié)

以上是生活随笔為你收集整理的【Android开发】NDK开发(3)-jni开发技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。