日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
java代碼轉ndk java代碼轉換器

java jni 怎么在windows環(huán)境中編譯成linux下的so文件

可以直接在android工程下使用,因為android就是linux內核。

創(chuàng)新互聯(lián)主要從事成都網站制作、成都做網站、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務洛江,十多年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220

android的NDK開發(fā)需要在linux下進行: 因為需要把C/C++編寫的代碼生成能在arm上運行的.so文件,這就需要用到交叉編譯環(huán)境,而交叉編譯需要在linux系統(tǒng)下才能完成。

2.安裝android-ndk開發(fā)包,這個開發(fā)包可以在google android : 通過這個開發(fā)包的工具才能將android jni 的C/C++的代碼編譯成庫

3.android應用程序開發(fā)環(huán)境: 包括eclipse、java、 android sdk、 adt等。

NDK編譯步驟:

選擇 ndk 自帶的例子 hello-jni ,位于E:\android-ndk-r5\samples\hello-jni( 根據(jù)具體的安裝位置而定 ) 。

2.運行 cygwin ,輸入命令 cd /cygdrive/e/android-ndk-r5/samples/hello-jni ,進入到 E:\android-ndk-r5\samples\hello-jni 目錄。

3.輸入 $NDK/ndk-build ,執(zhí)行成功后,它會自動生成一個 libs 目錄,把編譯生成的 .so 文件放在里面。 ($NDK是調用我們之前配置好的環(huán)境變量, ndk-build 是調用 ndk 的編譯程序 )

4.此時去 hello-jni 的 libs 目錄下看有沒有生成的 .so 文件,如果有,ndk 就運行正常啦。

NDK和直接用JAVA編寫代碼哪個效率更高

PC機

C程序移植

ANDROID

NDK效率更高

些(編程效率)

目前

用純C

實現(xiàn)安卓編程

linux

程序

移植更

便

windows

程序

更改

NDK相關

資料比較少

調試起

比較麻煩

現(xiàn)問題

搜索起

比較費事

工程

建議用java做

工程(幾十

CPP文件)

建議用NDK

怎樣將Java源代碼轉換成Java開應用程序

我試了一下,jbuilder生成的exe文件,在沒有裝jre的機器上不能運行,于是我就在該exe文件的同一位置提供一個jre目錄,可是該exe文件不會去自動找這個jre,應該怎樣做才能使exe文件找到這個jre,并運行起來呢?

先寫一個bak,檢查有沒有jre,有的話就直接運行你的程序,沒有的話,先安裝再執(zhí)行。

---------------------------------------------------------------

jbuilder有一個隱藏的技巧可以讓你從可執(zhí)行文件來啟動java程序,(不出現(xiàn)console窗口我沒有做到)。需要jbuilderx的bin目錄下的這些文件:

jbuilder.exe

jbuilderw.exe (可選)

jbuilder.config

jdk.config

“jbuilder.exe”是一個通用的可執(zhí)行外殼文件,用以啟動java程序,“jbuilderw.exe”好像是javaw.exe一樣,它把“jbuilder.exe”包裝起來,但是運行時候不顯示那個console的窗口。使用這些文件的關鍵是文件名?!癹builder.exe”查找一個文件叫“jbuilder.config”的配置文件,里面包含了運行java程序的必須信息。同樣的“jbuilderw.exe”查找“jbuilder.exe”來啟動不帶console窗口的java程序。如果把jbuilder.exe重命名為“foo.exe”,那“foo.exe”將去尋找“foo.config”配置文件,同樣“jbuilderw.exe”被重命名為“foow.exe”,它會去尋找“foo.exe”文件。

說到這里,聰明的讀者應該猜到怎樣利用jbuilder.exe來啟動應用程序了。只要把jbuilder.exe,jbuilerw.exe,jbuilder.config改名成相應的文件名,在jbuilder.config里面指定主類和類路徑,就能夠通過執(zhí)行jbuilder.exe(或者被改名后的exe文件)來啟動java應用程序了。

在\jbuilderx\bin\目錄下,后把jbuilder.exe,jbuilder.config,jdk.config四個文件拷貝到某目錄下,然后打開jbuilder.config文件,作相應的修改:

在jbuilder.config里面找到下面兩行

# start jbuilder using the its main class

mainclass com.borland.jbuilder.jbuilder ----修改主類為自己希望的類

config里面可以識別的命令可以在jbuilder/bin目錄下的config_readme.txt里面找到詳細說明。

然后修改jdk.config里面的javapath相對的路徑,例如原來是

javapath ../jdk1.3/bin/java ----修改主類為自己打包的jre路徑(可以使相對路徑,如./jre)

最后將jbuilder.exe,jbuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。

下面的小技巧可能更有趣,將jar文件打包進入exe文件!

將jar包附加到jbuilder.exe后面去,執(zhí)行過程:

copy /b ..\jbuilder.exe+hello.jar foo.exe

一個含jar包的exe文件得到了!

這個過程的大致原理是:exe文件的重要信息都在文件頭部,所以把亂七八糟的東西放exe文件尾部是不要緊的;而jar/zip文件的重要信息是在文件尾部的,這樣它們兩不相干,能夠容易的被執(zhí)行。

ndk生成的so怎么在java調用

1. 自己寫.c文件,然后生成so庫

2. 引用別人的靜態(tài)庫,或者動態(tài)庫來生成新的jni調用庫。

我們先來看最簡單的編寫一個jni調用的so庫,包含一個獲取字符串的方法,通過這個列子,我們主要是了解怎么在android的工程中調用jni的庫,以及要注意的問題。

第一步:首先我們來看下我們的工程的目錄

jni目錄是我們生成庫的文件,里面包含了一個.mk編譯文件以及一系列的.c文件

libs目錄是我們編譯jni目錄下的mk文件動態(tài)生成的。

當我們寫好了jni下面的庫文件以后,在當前目錄下執(zhí)行ndk-build則會自動生成我們需要調用的.so庫文件。

第二步: java里面怎么調用jni的庫文件,我們先看代碼

public class MainActivity extends Activity {

/* A native method that is implemented by the

* 'hello-jni' native library, which is packaged

* with this application.

*/

public native String stringFromJNI();

/* this is used to load the 'hello-jni' library on application

* startup. The library has already been unpacked into

* /data/data/com.example.HelloJni/lib/libhello-jni.so at

* installation time by the package manager.

*/

static {

System.loadLibrary("hello-jni");

}

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String str = stringFromJNI();

System.out.println("*****str:" + str);

}

}

在java文件中要做到調用jni文件生成的so庫,需要做到2步


分享題目:java代碼轉ndk java代碼轉換器
文章地址:http://www.dlmjj.cn/article/ddeohop.html