原创 JNI數據類型

JNI數據類型 1、8大基本類型:jchar, jbyte, jshort, jint, jlong, jfloat, jdouble, jboolean java jni char jchar byte jbyte

原创 adb logcat常用命令

優先級是下面的字符,順序是從低到高: V — 明細 verbose(最低優先級) D — 調試 debug I — 信息 info W — 警告 warn E — 錯誤 error F — 嚴重錯誤 fatal S — 無記

原创 FLAG_ACTIVITY_NEW_TASK與FLAG_ACTIVITY_CLEAR_TOP的理解糾正

1.單獨的FLAG_ACTIVITY_NEW_TASK並不等價於啓動模式 singleTask,它僅表示尋找activity所需的任務棧壓入,(即TaskAffinity指定的任務棧,TaskAffinity默認爲應用包名) 2.FLAG

原创 Android的CPU架構

早起Android只支持ARMv5的CPU架構,而發展到現在,支持一下7種架構: ARMv5:現在很少了,應該不需要支持了 ARMv7(2010年起):魅族M9,iphone 3GS,三星I9000等 x86(2011年起):聯想K80

原创 位運算符的巧用

1、&運算 特定位歸零:使一個二進制數中的某一個/幾個數位歸零,其餘數位不變。 如:保留最左邊的兩位,其它位歸0。 令最左邊的兩位爲1,其它位爲0,即0000 0011,然後做&運算 0000 0011 & 0100 01

原创 JNI驗證應用簽名

JNI驗證應用簽名 原理:獲取當前的簽名信息並且跟期待的簽名信息是否一致,如果是一致,則通過,否則失敗。 這個工作在JNI_OnLoad中完成,如下代碼: JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM

原创 CMake配置事項

CMake配置事項 Android Studio的一個module下可以有多個CMakeLists.txt文件,但是頂層CMakeLists.txt文件就只有一個,可以通過該module層下的build.gradle來指定。 andr

原创 獲取java native方法的簽名

獲取java native方法的簽名 用法: 1、javap -s packagename.classname 2、javap -s -p packagename.classname -s表示打印簽名信息 -p表示打印所有函數和

原创 JNI Tip

JNI函數中的JNIExport 和 JNICALL是windows平臺的jni編譯出來的,在Android手機上,其實可以不要這兩個關鍵字的 -

原创 Android.mk配置事項

預構建庫編譯 例:導入靜態庫libx264.a和動態庫libx264-148.so LOCAL_PATH := $(call my-dir) #第一組 include $(CLEAR_VARS) LOCAL_MODULE

原创 C++ 動態內存

C++ 動態內存 動態分配的對象的生存期與它們在哪裏創建的無關,只有當顯式地釋放時,這些對象纔會被銷燬。 使用動態內存的一個常見原因是爲了讓多個對象共享(不是拷貝)內部的數據,並使得當一個對象銷燬時,該數據不會被銷燬,其它對象仍然可以正