編輯:關於android開發
《Android jni helloworld》中介紹了開發jni helloworld的步驟,本文將介紹jni簡便開發流程
① 寫java代碼 native 聲明本地方法
② 添加本地支持 右鍵單擊項目->andorid tools->add native surport
如果發現 finish不能點擊,需要給工作空間配置ndk目錄的位置
window->preferences->左側選擇android->ndk 把ndk解壓的目錄指定進來

右鍵單擊項目->andorid tools->add native surport

點擊“Finish”,自動生成
③ 如果寫的是.cpp的文件 先修改一下生成的.cpp文件的擴展名 不要忘了 相應修改Android.mk文件中LOCAL_SRC_FILES的值
④ javah生成頭文件 在生成的頭文件中拷貝c的函數名到.c的文件
運行cmd
切換到項目src目錄:cd /d F:\workspace_sdk4\02_簡便開發流程\src
輸入:javah com.wuyudong.simpleprocess.MainActivity
src中自動生成“com_wuyudong_simpleprocess_MainActivity.h”文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_wuyudong_simpleprocess_MainActivity */
#ifndef _Included_com_wuyudong_simpleprocess_MainActivity
#define _Included_com_wuyudong_simpleprocess_MainActivity
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_wuyudong_simpleprocess_MainActivity
* Method: helliFromC
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_wuyudong_simpleprocess_MainActivity_helliFromC
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
將其中的代碼copy到hello.c中
⑤ 解決CDT插件報錯的問題
右鍵單擊項目選擇 properties 選測 c/c++ general->paths and symbols->include選項卡下->點擊add..->file system 選擇ndk目錄下 platforms文件夾 對應平台下(項目支持的最小版本)
usr 目錄下 arch-arm -> include 確定後 會解決代碼提示和報錯的問題

⑥編寫C函數 如果需要單獨編譯一下c代碼就在c/c++視圖中找到小錘子圖標
如果想直接運行到模擬器上 就不用錘子了
⑦ java代碼中不要忘了 system.loadlibrary();
最後的代碼如下:
package com.wuyudong.simpleprocess;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
static{
System.loadLibrary("hello");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v) {
Toast.makeText(getApplicationContext(), helloFromC(), 0).show();
}
public native String helloFromC();
}
The Genymotion Virtual device could not obtain an IP address解決辦法,genymotionobtain
The Genymotion Virtual device could not obtain an IP address解決辦法,genymotionobtain打開Ge
【android】仿360手機衛士的簡易設計思路及源碼
【android】仿360手機衛士的簡易設計思路及源碼 筆者最近一直忙於滿廣州的跑,實習好難找好難找,博客也是有點久沒去更新。仿360手機衛士的實現的目的更多的是出於對常
Android中手機錄屏並轉換GIF的兩種方式,android錄屏
Android中手機錄屏並轉換GIF的兩種方式,android錄屏之前在博文中為了更好的給大家演示APP的實現效果,本人了解學習了幾種給手機錄屏的方法,今天就給大家介紹兩
用Kotlin實現Android定制視圖(KAD 06),kotlinandroid
用Kotlin實現Android定制視圖(KAD 06),kotlinandroid作者:Antonio Leiva 時間:Dec 27, 2016 原文鏈接:https
簡單登錄案例(SharedPreferences存儲賬戶信息)&聯網請求圖片並下載到SD卡(文件外部存儲),sharedpreferences
簡單登錄案例(SharedPreferences存儲賬戶信息)&