導航:首頁 > 操作系統 > androidjni源碼

androidjni源碼

發布時間:2023-09-18 20:09:25

㈠ 如何在android studio中用JNI調用靜態庫

第一步:我們來看我們的jni目錄,目錄下包含以下4個文件
Android.mk --- 編譯文件
first.c ,first.h --- 外部需要引用的文件
second.c ---- 我們的jni轉換文件
首先我們簡單的看下源碼
#include "first.h"

int first(int x, int y)
{
return x + y;
}
first.c裡面簡單的定義了一個加法的方法,然後申明了頭文件

second.c : 把first.c的方法轉換為jni可以識別的方法。
#include "first.h"
#include <jni.h>

jint
java_com_example_twolibs_TwoLibs_add( JNIEnv* env,
jobject this,
jint x,
jint y )
{
return first(x, y);
}

第二步是重點,我們來分析下mk文件,看編譯文件是怎樣生成first.c對於的靜態文件,並在編譯second.c的時候載入靜態文件
1: LOCAL_PATH:= $(call my-dir)
2:
3: # first lib, which will be built statically
4: #
5: include $(CLEAR_VARS)
6:
7: LOCAL_MODULE := libtwolib-first
8: LOCAL_SRC_FILES := first.c
9:
10: include $(BUILD_STATIC_LIBRARY)
11:
12: # second lib, which will depend on and include the first one
13: #
14: include $(CLEAR_VARS)
15:
16: LOCAL_MODULE := libtwolib-second
17: LOCAL_SRC_FILES := second.c
18:
19: LOCAL_STATIC_LIBRARIES := libtwolib-first
20:
21: include $(BUILD_SHARED_LIBRARY)

如上: 1-10 行是生成靜態文件的方法,
14-21 行是編譯動態文件的方法,通過標識符BUILD_SHARED_LIBRARY 以及 BUILD_STATIC_LIBRARY 來區分是編譯成動態文件還是靜態,19行標識需要鏈接靜態庫libtwolib-first
第三步:在java中調用
public class TwoLibs extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

TextView tv = new TextView(this);
int x = 1000;
int y = 42;

// here, we dynamically load the library at runtime
// before calling the native method.
//
System.loadLibrary("twolib-second");

int z = add(x, y);

tv.setText( "The sum of " + x + " and " + y + " is " + z );
setContentView(tv);
}

public native int add(int x, int y);
}

你自己理解一下吧

㈡ android 源碼dvmusejnibridge在哪

一、下載android 源碼 1/android/git-repo/git-repo' 改為清華大學的地址 REPO_URL = 'git://aosp/android/git-repo' 3/platform/manifest 改為清華大學的地址 $ repo init -u git://aosp/android/platform/manifest 4/" /> 改為下面的code即可: <remote name="aosp" fetch="git://aosp/android/" review="https://android-review/" /> 這個方法也可以用來在同步Cyanogenmod代碼的時候從TUNA同步部分代碼

閱讀全文

與androidjni源碼相關的資料

熱點內容
隱藏配置文件夾 瀏覽:178
php分布式模塊化開發 瀏覽:384
wula是什麼app 瀏覽:812
豌豆莢里怎麼降低安卓手機版本 瀏覽:369
桌面的文件夾怎樣解散 瀏覽:794
貴州貴陽山洞伺服器雲空間 瀏覽:219
年薪48萬程序員老公 瀏覽:915
使用預構建的python 瀏覽:530
加密對沖基金交易有限公司 瀏覽:355
煙台製冷壓縮機價格 瀏覽:247
平板能用騰訊雲伺服器嗎 瀏覽:865
有js基礎學python 瀏覽:594
程序員可以回老家蓋房子嗎 瀏覽:553
pythonserial波特率 瀏覽:576
pc我的世界國際服怎麼下伺服器 瀏覽:142
udp凈荷加密 瀏覽:925
qq哪個文件夾占的內存大 瀏覽:632
哪個app賣葯是真的 瀏覽:829
半圓形計演算法 瀏覽:394
手機建立文件夾用什麼軟體 瀏覽:730