『壹』 基於android studio中<jni.h>為紅色怎麼辦
1.所有的配置均按照網上配置,報錯。
發現在為的ndk-10的liunx版本下的platform 平台裡面只有一個版本,在網上找到最新版11版下載。然後重新導入配置解決
Android studio 的NDK配置在:
File —> Project Structure —>SDK Location –> Android NDK Location
2.使用的最新的0.8.0 的插件.然後jni.h找不到的問題.在Android studio中,但是能運行,,能編譯…我也是覺得奇葩,然後找了一下官方Demo.用的0.7.0插件.於是我回退一下到0.7.0 就可以找到了.
###項目下的gradle配置
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.7.0'
}
3.關胡冊於android studio 的NDK的debug調試的問題:
環境:Win 10
ndk: 最新發布的R12版本
Android studio 版本:2.1.1
gradle-experimental 版本: 0.7.2
debug模式啟動掘做凳.在config裡面配置了 Debug是使用Native
問題:使用的時候,能夠進入到調試模式下.並且logcat列印是已經將Native session附加到Process進程上了,而且C++代碼的斷判旅點上面提示也有一個鉤鉤,說明斷點打上了.可是在斷點的地方沒辦法停下來.
後來更換了Win7的系統,Android Studio 1.5 同樣的工程能夠正常的調試.
『貳』 android ndk是什麼
NDK是用來給安卓手機開發軟體用的,但是和SDK不同的是它用的是C語言,而SDK用的是java語言。
NDK開發的軟體啟輪伍在安卓的環境里是直接運行的,一般只能在特定的CPU指令集的機器上運行,而且C語言可以直接和硬體對話,因此一般用它開給手機開發驅動或底層悄或應用;而SDK開發出的軟體在安卓上靠Dalvik虛擬機來運行,所以如果沒有特殊的桐攜需要或署專門針對某個硬體去開發,那就一般用SDK
『叄』 怎樣安裝android-ndk-r12b-windows-x86
一,1,可以試試直接用bash運行文件凱則橡。試試命令 bash android-ndk-r10c-linux-x86_64(1).bin
2, 如果還不行,建議更改一下文件的名字,可能是帶了特殊的符盯旁號,如括弧。改成簡單的名字
3,最好講文件的許可權屬性盯鍵發一個出來,有助於分析。運行 ll 命令。
Good Luck
二,
android-ndk-r10e-linux-x86.bin的使用要加上特定代碼即給予執行許可權。
如:chmod +x xxx.bin
sudo ./xxx.bin
加上可執行許可權,然後直接運行。
『肆』 「Android NDK 」是什麼,在什麼情況下使用
Android 應用是在dalvik虛擬機中運行的。NDK可以讓你使用本地代碼語言來開發應用,比如說C/C++,這種方法對某些類型的應用的是有好處的,可以充分利用本地代碼和在某些情況下加速代碼的執行。
對於絕大多數的應用來說,使用NDK並不是一個明智的選擇,作為一個開發者,我們需要衡量它所帶來的好處和缺點。使用本地代碼並不一定可以使性能得到優化,但是通常使得應用代碼變得復雜。一般來說,我們將應用中關鍵部分的代碼用C/C++寫,而不能由於我們習慣於用C/C++開發而把所有的代碼都用C/C++來實現。
有下面這些特點的應用可以考慮使用NDK:
1 獨立的,不和其他應用有關系的
2 頻繁佔用CPU但是申請的內存空間不是很大的操作,像信號的處理,物體的模擬等等
簡單的用C/C++重寫我們的代碼是不會帶來很大的性能提升的。
在考慮是否採用本地代碼開發的時候,要結合應用的實際需求並且看看Android 的framework層是否提供了我們需要的API,但是用NDK可以充分利用本地已經有的代碼。
Android framework提供下面兩種方法來使用本地代碼:
1 在Android framework的框架下面開發應用,使用JNI的方法來使用NDK本地方法提供的API。這樣的好處就是我們可以很好的利用的Android的framework提供的框架,但是需要編寫本地具體實現的代碼。這樣的APK可以在Android 1.5及其之後的版本上面運行。
2 寫一個本地的Activity,在本地代碼中實現生命回調函數,AndroidSDk提供了
類,這個類可以方便的讓你在你的本地代碼中實現回調函數(OnCreate,OnPause),從而當這些事件發生的時候處理。
『伍』 Android NDK 歷史版本下載地址
https://dl.google.com/android/repository/android-ndk-r20-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r19c-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r18b-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r17c-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r14b-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r13b-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r12b-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r11c-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r10e-windows-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r19c-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r18b-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r17c-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r15c-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r14b-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r13b-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r11c-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip
『陸』 android ndk有什麼用
一、對於android ndk的認識理解:
NDK是用來給安卓手機開發軟體用的,但是和SDK不同的是它用的是C語言,而SDK用的是Java語言。
NDK是一系列工具的集合:NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。NDK集成了交叉編譯器,並提供了相應的mk文件隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk文件(指出「哪些文件需要編譯」、「編譯特性要求」等),就可以創建出so。NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。
NDK提供了一份穩定、功能有限的API頭文件聲明:Google明確聲明該API是穩定的,在後續所有版本中都穩定支持當前發布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標准庫(libc)、標准數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。
二、Android NDK的作用:
NDK的發布,使「Java+C」的開發方式終於轉正,成為官方支持的開發方式。使用NDK,我們可以將要求高性能的應用邏輯使用C開發,從而提高應用程序的執行效率。
使用NDK,我們可以將需要保密的應用邏輯使用C開發。畢竟,Java包都是可以反編譯的。
NDK促使專業so組件商的出現。(樂觀猜想,要視乎Android用戶的數量)
NDK將是Android平台支持C開發的開端。
NDK提供了的開發工具集合,使開發人員可以便捷地開發、發布C組件。同時,Google承諾在Android NDK後續版本中提高「可調式」能力,即提供遠程的gdb工具,使我們可以便捷地調試C源碼。在支持Android平台C開發,我們能感覺到Google花費了很大精力,我們有理由憧憬「C組件支持」只是Google Android平台上C開發的開端。畢竟,C程序員仍然是碼農陣營中的絕對主力,將這部分人排除在Android應用開發之外,顯然是不利於Android平台繁榮昌盛的。
『柒』 android-ndk-r12b 在eclipse上怎麼配置環境變數
一.插件的安裝
如果你下載的是Eclipse
Standard,請下載對應版本的cdt(我直接使用的是Eclipse
IDE
for
C/C++
Developers
不要安裝cdt的哦,我人比較懶,(*^__^*)
嘻嘻……)
比如
CDT
8.1.2
for
Eclipse
Juno
cdt-master-8.1.2.zip,插入也比較簡單和adt安裝方式一樣。再次不在贅述。以前NDK的版本還要Sequoyah插件(好久不更新了)來進行本地開發,現在不需要了。
二.環境的配置
1).首先進行配置NDK的配置,打開Eclipse的
Window->preferences->Android->NDK
然後選擇路徑你的NDK路徑我的目錄如下D:\android-sdk\android-ndk-r9
這個目錄下有docs,sources,tests,samples
e等等。
然後點擊Apply,OK即可
2).首先導入hello—jni工程,然後點擊右鍵->Properties你看見如下圖所示的界面,這不是一個可以編譯的NDK工程。你需要運行Cygwin或者在Eclipse配置。
我們首先使用Cygwin來生成程序的.so文件。打開Cygwin運行命令cd
$ndk
這個ndk是之前你配置Cygwin環境變數設置的字元。然後cd
samples/hello-jni
然後$ndk/ndk-build,你就可以看見生成.so文件成功的頁面,這時候刷新或者clean工程
點擊run
as運行android程序。如下圖:
三.Eclipse
工程配置在Eclipse中開發c/c++
第二步運行完之後,你會發現你把Hello
from
JNI修改為AAA(隨便寫的)
這個字元串不好使,輸出之後還是Hello
from
JNI
。你需要再次運行Cygwin才可以。當然這樣比較麻煩,你可以在Eclipse中配置一下,就不要在運行Cygwin了。直接運行eclipse就可以了。
1)在HelloJni上右鍵->New->other(這一步一定是other)->c/c++>Convert
to
a
C/C++
Project(Adds
c/c++
Nature)->Next
然後選擇你的工程HelloJni,選擇轉化為c工程,選擇Makefile
Project
Cygwin
GCC,點擊Finish,再次點擊Finish即可
2)你發現你的工程.c文件有很多錯誤。這個時候點擊工程右鍵->Propreties這個時候你會發現和第二步的2)圖多了二項
c/c++
Build
和c/c++
General.
點擊
c/c++
Build
Use
defult
build
commond的勾去掉
在Build
command
填入bash
<NDK路徑>\ndk-build
例如bash
D:\android-sdk\android-ndk-r9\ndk-build點擊Apply
OK即可。
點擊c/c++
General
打開列表點擊Paths
and
Symbols
在Includes
你看見Assembly
GNU
C
(如果你在1)步選擇的C++project還會有GNU
C++)
.這個時候要選擇你所要的依賴庫,由於hello-jni不需要過多的庫文件所以
只需要點擊Add
D:\android-sdk\android-ndk-r9\platforms\android-9\arch-arm\usr\include
這樣你就可以直接修改在Run
as了。Ok成功運行。
『捌』 android ndk是什麼
android是安卓的縮寫,NDK是日本電波工業株式會社的英文縮寫,Android NDK 是在SDK前面又加上了「原生」二字,即Native Development Kit,因此又被Google稱為「NDK」。
Android程序運行在Dalvik虛擬機中,NDK允許用戶使用類似C / C++之類鄭拍的原生代碼語言執行部分程序。NDK包括以下方面:
1、從C / C++生成原生代知啟碼庫所需要的工具和build files。
2、將一致的原生庫嵌入可以在Android設備上部署的應用程序包文件(application packages files ,即.apk文件)中。
3、支持所有未來Android平台的一系列原生系統頭文件和庫。
(8)androidndkr12擴展閱讀:
NDK的產品優勢:
1、搭叢如NDK擁有培育人工水晶的豐富經驗。而好的人工水晶決定了優質晶振產品的一半的品質。
2、NDK晶振產品尺寸、規格全面,既可滿足中小型、超小型電子元器件的要求,也適用於各類規格要求的細分市場。
3、NDK晶體諧振器、晶體振盪器具有非常優越的頻率一致性和穩定性。特別在汽車電子市場,即使在嚴峻的寬溫(-40度到150度)和震動撞擊環境下,都能保持良好的穩定性。
參考資料來源:網路:NDK
『玖』 Android ADT 添加 NDK r12 出現「Not a valid NDK directory」但是添加 r10的時候就沒有,求大神指導指導
提示說「不是一個有效的NDK目錄」
你NDK r12下載了么?
你用的是eclipse 還是 android studio,studio可以自動聯網下載
『拾』 「Android NDK 」是什麼,在什麼情況下使用
1、NDK是一系列工具的集合。
2、NDK提供了一份穩定、功能有限的API頭文件聲明。
3、NDK的發布,使「Java+C」的開發方式終於轉正,成為官方支持的開發方式。
4、NDK將使Android平台支持C開發的開端。
NDK使得在android中,java可以調用C函數庫。我們都知道,java是半解釋型語言,很容易被反匯編後拿到源代碼文件,在開發一些重要協議時,我們為了安全起見,使用C語言來編寫這些重要的部分,來增大系統的安全性。還有,在一些接近硬體環境下,相信大家都清楚行襲升C與java的優劣。順帶提一下:NDK並不能顯著提升應用效率。why?我們都覺得C語言比起java來說效率要高出很多,一方面,隨著jdk的不斷更新,java的效率也隨之提高;另一方面,即便使用C語言編碼提高了應用效率,但是在java與C相互調用時平白又增大了開銷。