‘壹’ 基于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相互调用时平白又增大了开销。