Android JNI開發經驗小記


     最近在學習Android平臺的JNI(Java Native Interface,供java調用其他平臺如c/c++的代碼,或者c/c++調用java),參考了其他人的資料後,發現Android平臺下的JNI有兩種方式,靜態註冊和動態註冊。

 

     由於項目要Android調用一個C語言的 庫,且項目比較成熟,所以選用靜態方法,下面的例子也會用靜態方法(網上普遍的方法)。



一、Android JNI開發環境的搭建


 二、JNI對手機CPU的影響


               項目裏,手機通過JNI調用一個C語言寫的算法,結果在某些手機(華爲,聯想)運行時app很容易沒響應而崩潰,一直找不出原因,後來才發現,是JNI 吃掉了很大部分的CPU使用率:

通過JNI開啓調用後(藍色爲樓主的app佔用率)



後來也懷疑是否算法本身佔用太多CPU,但沒給數據讓算法處理的時候,CPU也高居不下:

把JNI調用部分代碼註釋掉後的使用率:(深藍色)


看來還是要進一步優化了。


ps:如果用到JNI後,app被拖慢很多,請仔細考慮JNI調用的方法和時機了。



發佈了26 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章