編輯:關於Android編程
在上一篇博文中,我們搭建好了Android ndk 的開發環境,作為碼農,我們是不是先來寫一個HelloWorld來表示一下自己的到來。
(1)首先在你的工作空間建一個Android項目,這裡我建立的為NDKHelloWorld。項目結構如圖(1)
、
圖(1)
(2)在MainActivity中聲明你所需要的本地方法,MainActivity的代碼如下所示:
package com.gc.ndkhelloworld;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
/**
*
* @author Android將軍
*
*/
public class MainActivity extends Activity {
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView=(TextView) findViewById(R.id.tv);
mTextView.setText(helloWorld());
}
/**
* 在Java代碼中聲明本地方法
* @return
*/
public native String helloWorld();
}
(2)選中該項目,右擊選擇Android Tools,然後選擇Add Native Support...,如圖(2)所示:

圖(2)
然後出現圖(3)所示情況:
圖(3)
點擊finish之後,會發現項目的目錄結構如圖(4)所示:
圖(4)
下面我們開始實現本地方法,helloworld.cpp的代碼如下:
#include實現完本地方法後,下面我們需要編譯本地庫,選中該項目,右擊選擇Build Project來進行編譯本地庫,編譯完本地庫之後,就需要加載本地庫了。在靜態初始化塊內調用System.loadLibrary加載本地庫,是加載庫的最簡單的方法,本例中加載庫的代碼如下所示:#include /** * @author Android將軍 */ /** * * 實現本地方法時,一個要按照函數命名規則來命名,函數的命名規則如下: * Java_PackageName_ClassName_MethodName * 從這個規則可以看出,任何由Java程序調用的NDK函數名都必須以Java開頭,緊跟著要調用該函數的Java類 * 所在的包名(中間的“.”要改成“_”),然後會跟Java類名,最後是方法名,各部分直接都用“_”連接。 */ extern C { jstring Java_com_gc_ndkhelloworld_MainActivity_helloWorld(JNIEnv *env,jobject obj) { return env->NewStringUTF(NDK,HelloWorld!); } }
static {
System.loadLibrary(helloworld);
}
編譯完本地庫之後,你可以發現libs目錄下多了一個armeabi目錄,這是因為我們沒有為該項目指定一個Application.mk文件,而Android NDK構建系統默認情況下為armeabi ABI生成二進制文件。為了我們的本地庫可以在NDK所支持的所有架構上運行,我們在jni目錄下需要增加一個Application.mk文件,文件內容如下:APP_ABI := all
如果大家在實現本地方法時,遇到 could not be resolved或Unresolved inclusion:

Chromium擴展(Extension)通信機制分析
Chromium的Extension由Page和Content Script組成。如果將Extension看作是一個App,那麼Page和Content Script就是
開源Android-PullToRefresh下拉刷新源碼分析
PullToRefresh 這個庫用的是非常至多,github 今天主要分析一下源碼實現.我們通過ListView的下拉刷新進行分析,其它的類似。整個下拉刷新 父View
Android實現漸變色的圓弧虛線效果
首先來看看效果圖:1,SweepGradient(梯度渲染)public SweepGradient (float cx, float cy, int[] colors,
Android安全專項-利用androguard分析微信
安裝做 Android 安全測試之前你應該知道的工具 (一)分析./androlyze.py -s進入分析的交互界面然後執行apk,d,dx=AnalyzeAPK(&qu