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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android驱动代码,GitHub - rumengsuifeng/AndroidDrivers: Android驱动的代码

發布時間:2023/12/10 Android 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android驱动代码,GitHub - rumengsuifeng/AndroidDrivers: Android驱动的代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 創建hardware目錄,在該目錄下創建HardCor.java文件(參考HelloWorldActivity.java文件)

2. 在build.gradle(app路徑)文件中添加指定so文件的目錄,so文件的源文件是C語言編寫的,可以放在任意一個目錄,它就是JNI文件

3. 如果工程里app目錄下沒有libs目錄,那就自己在app目錄下創建一個libs目錄,然后創建armeabi目錄,把編譯出的so文件放入這個目錄里,這樣的做法是把庫編譯進apk文件里。

4. 編譯.so文件的命令:arm-linux-gnueabi-gcc -I/usr/lib/jvm/java-7-openjdk-amd64/include/ -fPIC -shared -o libhardcor.so hardcor.c

以上的命令編譯出的.so文件在下載到開發板上,點擊屏幕上的按鍵以后會報錯:缺少libc.so.6文件,所以替換成如下命令:

arm-linux-gnueabi-gcc -fPIC -shared hardcor.c -o libhardcor.so -I /usr/lib/jvm/java-7-openjdk-amd64/include/ -nostdlib /home/root/cqa64_android_v5.1/android/prebuilts/ndk/9/platforms/android-21/arch-arm/usr/lib/libc.so

該命令的-nostdlib選項意思是取消默認的鏈接庫文件,后邊的路徑是指定自己要用的庫文件。在用以上命令編譯so文件的時候有個錯誤卡了好久:

“root@qihua-virtual-machine:/home/root/cqa64_android_v5.1/HAL# arm-linux-gnueabihf-gcc -I/usr/lib/jvm/java-7-openjdk-amd64/include/ -fPIC -shared -o libhardcor.so hardcor.c -nostdlib /home/root/cqa64_android_v5.1/android/prebuilts/ndk/9/platforms/android-21/arch-arm/usr/lib/libc.so

/home/root/cqa64_android_v5.1/HAL/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.9.1/../../../../arm-linux-gnueabihf/bin/ld: error: libhardcor.so uses VFP register arguments, /home/root/cqa64_android_v5.1/android/prebuilts/ndk/9/platforms/android-21/arch-arm/usr/lib/libc.so does not

/home/root/cqa64_android_v5.1/HAL/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.9.1/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file /home/root/cqa64_android_v5.1/android/prebuilts/ndk/9/platforms/android-21/arch-arm/usr/lib/libc.so

collect2: error: ld returned 1 exit status

root@qihua-virtual-machine:/home/root/cqa64_android_v5.1/HAL# ”

以上問題的解決辦法是換了個交叉編譯器好了,但是現在我也沒搞明白編譯so文件的編譯器和編譯Android源碼的編譯器有啥聯系,以上問題的帖子鏈接在:http://bbs.100ask.org/forum.php?mod=viewthread&tid=22161&page=1#pid79973

5. 編譯命令再次進化:

arm-linux-gnueabi-gcc -fPIC -shared hardcor.c -o libhardcor.so -I /usr/lib/jvm/java-7-openjdk-amd64/include/ -nostdlib /home/root/cqa64_android_v5.1/android/prebuilts/ndk/9/platforms/android-21/arch-arm/usr/lib/libc.so -I /home/root/cqa64_android_v5.1/android/prebuilts/ndk/9/platforms/android-21/arch-arm/usr/include/ /home/root/cqa64_android_v5.1/android/prebuilts/ndk/9/platforms/android-21/arch-arm/usr/lib/liblog.so

因為代碼中使用了__android_log_print打印函數(該函數可以把調試信息打印在studio的logcat欄里)所以指定了頭文件,-I 參數指定log.h頭文件的路徑;后邊的目錄指定了liblog.so的路徑

總結

以上是生活随笔為你收集整理的android驱动代码,GitHub - rumengsuifeng/AndroidDrivers: Android驱动的代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。