編輯:Android開發教程
1.背景
android NDK可以用來編譯android的native方法,也可以將c和c++的代碼編譯成.so文件,讓android程序運行。
2.NDK安裝(linux環境)
(1)下載對應的ndk版本,在shell裡輸入如下命令
gedit ~/.bashrc
(2)打開bash文件,添加下載的ndk路徑
NDKROOT=/home/CORPUSERS/28852262/android-ndk-r9c export PATH=$NDKROOT:$PATH
(3)輸入如下命令,然後重啟shell
source /etc/profile
(4)在shell中輸入ndk-build,出現如下狀態說明安裝成功

3.jni第一個demon helloworld
(1)編寫hello-jni.c文件。
#include <string.h>
#include <jni.h>
/* This is a trivial JNI example where we use a native method
* to return a new VM String. See the corresponding Java source
* file located at:
*
* apps/samples/hello-jni/project/src/com/example/hellojni/HelloJni.java
*/
jstring
Java_com_example_hellojni_HelloJni_aa( JNIEnv* env,
jobject thiz )
{
#if defined(__arm__)
#if defined(__ARM_ARCH_7A__)
#if defined(__ARM_NEON__)
#define ABI "armeabi-v7a/NEON"
#else
#define ABI "armeabi-v7a"
#endif
#else
#define ABI "armeabi"
#endif
#elif defined(__i386__)
#define ABI "x86"
#elif defined(__mips__)
#define ABI "mips"
#else
#define ABI "unknown"
#endif
return (*env)->NewStringUTF(env, "Hello from JNI ! Compiled with ABI " ABI ".");
}
這個c文件實現輸出一個string型函數,注意這裡
Java_com_example_hellojni_HelloJni_aa
我們創建android應用的時候包和函數命名要和這個對應,否則匯報錯:native method is not found。如下圖

查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/
Android自定義View之使用貝塞爾曲線實現流量進度條
第一次寫帶圖片的博客,多少還是有點緊張,效果不好,請將就著看,前面的圖是今天要寫的控件的效果圖,元素不多,分別是一個按鈕和一個自定義的控件。在此以前,我看過許多的書,比如
Android類裝載器DexClassLoader的簡單使用:制作android插件
一、裝載器簡介“類裝載器”(ClassLoader),顧名思義,就是用來動態裝載class文件的。標准的Java SDK中有個ClassLoade
Android系統中AndroidManifest.xml文件解析
一、關於AndroidManifest.xmlAndroidManifest.xml 是每個android程序中必須的文件。它位於整 個項目的根目錄,描述了package
做Android 系統/應用開發需要掌握自動化測試知識
接觸Andorid有幾個月了,一直認為做系統,應用開發根本不需要懂 Android自動化測試之道,認為那都是測試人員需要掌握的東西,我們只要懂開發,只要讀懂系統,根據客戶
Android ApiDemos示例解析(2) SimpleAdapter,ListActivity,PackageManager
創建好ApiDemo項目後,就可以逐個示例的來分析代碼,這裡假定讀者已對