編輯:關於android開發
之前寫過一篇Eclipse制作.so的文章,使用的是GNUstep模擬Linux環境,過程現在看來是想相當麻煩,後來發現一個簡單的方法就是通過項目右鍵添加Native Supprot...可以快速創建.so而不使用命令行,
由於AS越來越被大家使用,所以Eclipse的制作過程就不再寫了,這篇主要講的是如何用AS快速制作一個簡單的.so文件!
如果之前對制作.so一點了解也沒有的話,在看這一篇之前可以看下文章開頭提到的文章,會對這篇文章的理解上有所幫助,因為本篇文章不打算講解的太過詳細!
步驟1:
創建一個新的AS項目(模板選擇EmptyActivity即可)jnitest,包名:com.byl.jnitest:
步驟2:
添加NDK支持:
按Ctrl+Alt+Shift+S,出現如圖:
ok,完成後,打開項目根目錄下的local.properties文件:
ndk的路徑會自動添加進來,表示操作成功!
步驟3:
打開根目錄下gradle.properties文件,添加代碼:
android.useDeprecatedNdk=true
步驟4:
項目>app>src>main文件夾下,新建jni文件夾,並放入三個文件.h、.c、.c:
注意:
.h文件命名的命名方式,包名+調用.so的Activity名且"."需要更換成下滑線"_";
jnitest.c的命名可以隨便定義;
util.c是一個空的.c文件,作用就是在ndk編譯時避免一個錯誤:
make.exe: *** No rule to make target
/* DO NOT EDIT THIS FILE - it is machine generated */ #include/* Header for class com_byl_jnitest_MainActivity */ #ifndef _Included_com_byl_jnitest_MainActivity #define _Included_com_byl_jnitest_MainActivity #ifdef __cplusplus extern "C" { #endif /* * Class: com_byl_jnitest_MainActivity * Method: getSec * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_byl_jnitest_MainActivity_getSec (JNIEnv *, jclass); #ifdef __cplusplus } #endif #endif
#include#include jstring Java_com_byl_jnitest_MainActivity_getSec (JNIEnv* env,jobject thiz){ return (*env)->NewStringUTF(env,"調用jni成功"); }
步驟5:
在MainActivity中調用.so:
public static native String getSec();//.so中的方法名 static{ System.loadLibrary("jnitest"); }
步驟6:
最後一步,打開app目錄下build.gradle文件,修改gradle配置:
defaultConfig { applicationId "com.byl.jnitest" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" ndk { moduleName "jnitest" ldLibs "log", "z", "m" abiFilters "armeabi" } }
以上步驟全部完成後,直接點擊run>>:
運行必然要報錯的,因為之前.so文件並不存在,經此一調,ndk便自動為我們生成了想要的東西:
將.so文件復制出來,然後在main文件夾下建立jniLibs/armeabi,並將.so放入:
再次運行>>:
此例只是簡單的輸出一個字符串,一般的項目放入一個不想外露的密鑰之類的還是非常有用的!
Android5.x Notification應用解析 Notification可以讓我們在獲得消息的時候,在狀態欄,鎖屏界面來顯示相應的信息,很難想象如果沒有Not
Android實戰技巧之四十六:用patch更新Android Studio 公司機器上的Android Studio很時髦,每次都會准時接收到官方穩定版的推送。目前最新
安卓 應用程序修改圖標不更新,安卓圖標自己在做項目時,真機測試時想更換應用程序的圖標(虛擬機更換後可以更新),但是更換後重新運行並沒有更新圖標。經過嘗試,最終通過重啟手機
android TextView實現跑馬燈效果 最近忙著項目,很久沒有總結提交博客和提交github了。接下來我打算整理下項目中用到的比較有用的發表到博客上。也打算總