Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android jni簡便開發流程,androidjni流程

Android jni簡便開發流程,androidjni流程

編輯:關於android開發

Android jni簡便開發流程,androidjni流程


《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();
    
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved