日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android中NDK學習之隱藏敏感信息

由于Android應用被反編譯后是可以看到里面信息的,而一些敏感信息,比如服務器的ip地址、加密的算法,我們是不希望讓別人知道的。如何才能 隱藏這些信息呢,就我目前了解,使用Android NDK,把這些數(shù)據(jù)編譯在so文件中,然后通過JNI獲取,從而達到保護敏感信息的目的,即NDK隱藏敏感信息。
于是最近幾天開始學習Android NDK開發(fā),網(wǎng)上有很多教程,但都太麻煩,一會配置這,一會配置那的,很容易讓像我望而卻步。
在成功運行Hello JNI后,心想干脆寫個博客吧,把自己的遇到的問題記錄下來,如果能夠幫助同樣對Android NDK感興趣的童鞋,那就最好不過了。
首先下載相關工具:
1.下載最新版的Android developer tools
這個也叫ADT,是google最近發(fā)布的一款Android集成開發(fā)工具,解壓后有2個目錄:eclipse和sdk.eclipse目錄里是一個定制 的eclipse,已經(jīng)裝好了sdk插件 、ndk插件和c/c (CDT)等插件,不到400M,sdk目錄里面是一個最新API級別的android sdk。建議下載這個ADT。如果你之前已經(jīng)下載過各個版本的SDK,把它們拷過來,還可以正常使用。
如果你不愿意下載,那么你就需要在你的eclipse中安裝C/C (CDT)和NDK插件。
2.下載Android NDK,294M
3.如果你是windows用戶,貌似還得安裝Cygwin 1.7
強烈建議大家拋棄windows。這樣你就不用做第三步了。

成都創(chuàng)新互聯(lián)公司成都網(wǎng)站建設按需搭建網(wǎng)站,是成都網(wǎng)站設計公司,為輕質(zhì)隔墻板提供網(wǎng)站建設服務,有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設計服務:原型圖制作、網(wǎng)站創(chuàng)意設計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站建設熱線:028-86922220

下面開始創(chuàng)建項目:
1.新建一個Android Project
2.右鍵 找到Android Tools選擇,點擊Add Native Support

輸入so庫文件的名字,如果你使用過百度地圖的話,你對這個so文件應該不陌生,它位于項目libs目錄里面的armeabi文件夾中,一般為 libxxxx.so,我這里輸入是AppConfig,編譯成功后便會生成libAppConfig.so文件,點擊確定,eclipse會變成C/C 編輯視圖,ndk插件會幫你在項目下創(chuàng)建一個jni目錄,并且在jni下面創(chuàng)建AppConfig.cpp文件和一個Android.mk文件

Android.mk 里面內(nèi)容如下

 
 
 
 
  1. LOCAL_PATH := $(call my-dir) 
  2. include $(CLEAR_VARS) 
  3. LOCAL_MODULE    := AppConfig 
  4. LOCAL_SRC_FILES := AppConfig.cpp 
  5. include $(BUILD_SHARED_LIBRARY) 

而AppConfig.cpp里面只有一行代碼:#include

接下來網(wǎng)上很多教程都是用javah生成.h頭文件。
我是按照下面的流程來做的:
1.編寫一個java類,里面有一個getAppUrl()的native方法,因為我要隱藏服務器的地址,所以這里需要返回一個String字符串

 
 
 
 
  1. public class JNIInterface{ 
  2.     static{ 
  3. //加載libAppConfig.so庫文件 
  4. //AppConfig是添加 Android Native Support時輸入的名稱 
  5. //另外,通過修改Android.mk中的LOCAL_MODULE可以修改這個名稱 
  6.         System.loadLibrary("AppConfig"); 
  7.     } 
  8.     public static native String getAppUrl(); 
  9. }

2.編寫AppConfig.cpp文件

 
 
 
 
  1. #include  
  2. extern "C" 
  3. jstring  
  4. Java_com_loveplusplus_hellojni_JNIInterface_getAppUrl(JNIEnv* env,jobject thiz) { 
  5. //return (*env)->NewStringUTF(env,"http://www.baidu.com"); //c 
  6. return env->NewStringUTF("http://www.baidu.com"); 

第一行代碼:引入jni.h頭文件
第二行代碼:因為這里用的c ,所以要extern "C" C是大小的
第三行代碼:剛才寫的JNIInterface類的getAppUrl方法位于com.loveplusplus.hellojni這個包下,所以這里有一個固定的寫法:Java包名類名_方法名。這和其它教程里面講的 使用javah 生成頭文件其實是一回事。JNIEnv* env,jobject thiz是固定傳入的參數(shù)。
第四行代碼:這行注釋掉的代碼是c語言返回字符串的寫法
第五行代碼:返回一個字符串

點擊上圖中紅圈中的那個錘子,ndk便會把AppConfig.cpp編譯到libAppConfig.so文件中
下面是運行效果圖:

本人研究了一下androidNDK隱藏敏感信息,把心得分享給大家。


網(wǎng)頁標題:Android中NDK學習之隱藏敏感信息
網(wǎng)頁地址:http://www.5511xx.com/article/cdopjoo.html