Googlecn上介绍NDK的说明如下;
原生开发工具包 (NDK) 是一组可让您在 Android 应用中利用 C 和 C++ 代码的工具。 可用以从您自己的源代码构建,或者利用现有的预构建库。
NDK 不适用于大多数初学的 Android 编程者,对许多类型的 Android 应用没什么价值。 因为它不可避免地会增加开发过程的复杂性,所以通常不值得使用。 但如果您需要执行以下 *** 作,它可能很有用:
从设备获取卓越性能以用于计算密集型应用,例如游戏或物理模拟。
重复使用您自己或其他开发者的 C 或 C++ 库。
照这样说,你不用c/c++就不需要,但是你用qt那肯定是用c++来开发
android studio ndk调用过程如下:
通过jniaes案例说明调用NDK层配置过程
而我们通过底层来判断签名是否正确,如果正确则继续执行核心代码,否则退出程序,这样就可以防止别人恶意反编译,并进行二次打包。
首先去官网下载一个最新的NDK,随便放到哪都行,像我放在D:\Dev\Android\android-ndk-r10d
(1) 新建一个项目:名称JniAes
首先在java类中添加native接口,注意写好native接口和SystemloadLibrary()即可。代码如下:
1 public synchronized static native String getFromNativeIv();2 public synchronized static native String getStringFromNative();3 public synchronized static native int jniCheckAPP(Context context);4
然后build project得到其中中间文件,我们关注的是class文件。编译OK以后生成的class文件在AS工程的如下目录:
aes\app\build\intermediates\classes\debug\android\
(2)接下来跟class文件生成相应的h头文件,执行如下命令即可
点击"View->Tool Windows->Terminal" 即在Studio中进行终端命令行工具执行如下命令生成c语言头文件javah -d jni -classpath c:\Users\sodinochen\AppData\Local\Android\sdk\platforms\android-16\androidjar;\\build\intermediates\classes\debug comaesjniaesMainActivity
(3)然后将刚才的 h文件剪切过来。在jni目录下新建一个c文件,随意取名,我的叫strkc 。
strkc文件,用于实现核心代码逻辑,判断包名哈希值是否合法,如果返回1,为合法。反之,则不合法。入口方法为:jint Java_com_aes_jniaes_MainActivity_jniCheckAPP(JNIEnv env, jobject context, jobject thiz)
接下来在工程的localproperties文件中添加NDK路径(上面下载好的那个NDK),类似其中的SDK路径一样,我的添加后如下:
sdkdir=D\:\\Dev\\Android\\android-sdk-windowsndkdir=D\:\\Dev\\Android\\android-ndk-r10d
(4)接下来在app module目录下的buildgradle中设置库文件名(生成的so文件名)。找到gradle文件的defaultConfig这项,在里面添加如下内容:
defaultConfig { applicationId "comaesjniaes" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "10" ndk { moduleName "checkapp-jni" //生成的so名字 abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库。目前可有可无。 } }
(5)最后就是添加静态初始化loadLibrary代码,添加如下:
static { SystemloadLibrary("checkapp-jni"); //so文件的名字 }
编译出来的so文件在aes\app\build\intermediates\ndk\debug\lib目录下
那么如何将编译好的so文件进行使用,可以通过如下方式:
二 引用so文件
(1)在“src/main”目录中新建名为“jniLibs”的目录;
(2)将so文件复制、粘贴到“jniLibs”目录内。
可以直接在android工程下使用,因为android就是linux内核。
1android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。
2安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库
3android应用程序开发环境: 包括eclipse、java、 android sdk、 adt等。
NDK编译步骤:
1选择 ndk 自带的例子 hello-jni ,位于E:\android-ndk-r5\samples\hello-jni( 根据具体的安装位置而定 ) 。
2运行 cygwin ,输入命令 cd /cygdrive/e/android-ndk-r5/samples/hello-jni ,进入到 E:\android-ndk-r5\samples\hello-jni 目录。
3输入 $NDK/ndk-build ,执行成功后,它会自动生成一个 libs 目录,把编译生成的 so 文件放在里面。 ($NDK是调用我们之前配置好的环境变量, ndk-build 是调用 ndk 的编译程序 )
4此时去 hello-jni 的 libs 目录下看有没有生成的 so 文件,如果有,ndk 就运行正常啦。
我想制作一个手机软件,应该怎么做? 100分
我给大家介绍一些适合制作简单app的软件,让各位在未掌握app开发语言情况下,依然能制作出属于自己的app应用软件。
一:Appmakr
AppMakr是一个可以让你在几分钟之内创建应用程序的一种服务,无需编码能力。使用该工具,你可以创建iPhone和Android应用。还有一些可供选择的功能,包括将网站连接到你的应用程序、HTML5功能、推送通知和广告支持。通过AppMaker账户,你可以创建无限数量的应用程序。
目前Appmakr是国外比较流行的应用生成工具,在国内也享有一定知名度。
二:AppCan
AppCan属于移动应用开发平台,应用引擎支持Hybrid App的开发和运行。并且着重解决了基于HTML5的移动应用目前"不流畅"和"体验差"的问题。使用AppCan应用引擎提供的Native交互能力,可以让HTML5开发的移动应用基本接近Native App的体验。
与Phonegap支持单一webview使用div为单位开发移动应用不同。AppCan支持多窗口机制,让开发者可以像最传统的网页开发一样,通过页面链接的方式灵活的开发移动应用。基于这种机制,开发者可以开发出大型的移动应用,而不是只能开发简易类型的移动应用。
三:appBook
appBook平台是多平台移动应用制作工具,可以广泛用于书籍制作,个人杂志发行,宣传手册,支持iPad、iPhone、Andriod等平台,不支持pc平台。真正做到了一次编译多平台发布。目前appbook平台有:iebook平台、及、appbook应用制作平台
曾经我也适用用软件制作APP,目的是达到了,但做出来的app比较生硬。后来我和启汇网络(广州一家比较专业的APP开发公司)技术总监Daniel聊起app开发,Daniel认为:要做好app开发,必须要有核心的app开发技术,有经验的app开发团队,才能做好满意的app应用软件。
真正要做好一个APP,也要掌握一定的app开发技术才是王道!
手机怎样制作软件程序
手机App软件 是使用Android制作的 和 IOS 制作的两种其中IOS制作的是应用在 苹果的设备上!希望对你有用!
制作手机APP软件,需要哪些人?
制作手机APP需要:软件研发工程师(安卓或IOS),美术,项目策划
软件研发工程师主要负责编程实现软件的功能需求(如登录,注册,购买,查询,编辑,退出等)
美术主要负责软件所需的素材(,动画,特效,模型等)
项目策划主要负责整个产品的定位(所面向的用户群体),功能需求,界面布局(软件中按钮特效的位置,大小等参数),以及后期的产品用户体验的改进
手机上的软件怎么制作压缩包
360手机助手类的软件不是有备份软件功能吗
怎么制作手机软件app
随着移动手机的普及,移动APP应用软件也流行起来。“启汇网络”市场部通过调查得出一组数据:20%左右的企业已经拥有或者正在开发自己的app应用软件,60%左右的公司已经把开发app软件列入近期公司发展项目中。可以看出,大部分公司和站长都有想法把自己的网站制作成app软件,跟紧潮流步伐。但app开发涉及到的技术比较专业,开发语言要想熟悉掌握也并非一件易事。那么,在技术还未过关的情况下,如何制作app应用软件呢?
接下来,我将给大家介绍一些适合制作简单app的软件,让各位在未掌握app开发语言情况下,依然能制作出属于自己的app应用软件。
一:Appmakr
AppMakr是一个可以让你在几分钟之内创建应用程序的一种服务,无需编码能力。使用该工具,你可以创建iPhone和Android应用。还有一些可供选择的功能,包括将网站连接到你的应用程序、HTML5功能、推送通知和广告支持。通过AppMaker账户,你可以创建无限数量的应用程序。
目前Appmakr是国外比较流行的应用生成工具,在国内也享有一定知名度。
二:AppCan
AppCan属于移动应用开发平台,应用引擎支持Hybrid App的开发和运行。并且着重解决了基于HTML5的移动应用目前"不流畅"和"体验差"的问题。使用AppCan应用引擎提供的Native交互能力,可以让HTML5开发的移动应用基本接近Native App的体验。
与Phonegap支持单一webview使用div为单位开发移动应用不同。AppCan支持多窗口机制,让开发者可以像最传统的网页开发一样,通过页面链接的方式灵活的开发移动应用。基于这种机制,开发者可以开发出大型的移动应用,而不是只能开发简易类型的移动应用。
三:appBook
appBook平台是多平台移动应用制作工具,可以广泛用于书籍制作,个人杂志发行,宣传手册,支持iPad、iPhone、Andriod等平台,不支持pc平台。真正做到了一次编译多平台发布。目前appbook平台有:iebook平台、及、appbook应用制作平台
曾经我也适用用软件制作APP,目的是达到了,但做出来的app比较生硬。后来我和启汇网络(广州一家比较专业的APP开发公司)技术总监Daniel聊起app开发,Daniel认为:要做好app开发,必须要有核心的app开发技术,有经验的app开发团队,才能做好满意的app应用软件。
真正要做好一个APP,也要掌握一定的app开发技术才是王道!
怎样才能自己设计一款手机APP软件
浙江天尔软件技术有限公司,可以看头像联系,在十几年的开发经验中总结出了开发一款APP的注意事项,你可以参考下: 开发一个完整app需要掌握哪些知识 1、前期需求规划与信息——你需要制定出一个完整的需求文档,功能文档,流程图,时序图。 2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材需要做点9patch。 这里还需要你懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便你的app能完美适应不同分辨率设备。其中交互设计需要你懂得很多人机 *** 作的技巧经验,掌握Axure等交互工具的使用,UI设计需要你掌握Photoshop和Illustrator等 *** 作。 3、使用ADT之类的开发环境进行app软件开发,你最基本的也得掌握java语言,熟悉android环境和机制。 4、如果不是单机版的app,需要用到服务器,那你还得掌握WebService相关知识和开发语 言,常用的有ASPNet,PHP,JSP等。 5、熟悉并能开发数据库。 6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。 7、熟悉API接口开发,这里包括你自行开发API的能力以及调用第三方API的经验。 8、熟悉TCP/IP,socket等网络协议和相关知识。 9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。 App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的app开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。
智能手机软件制作需要学习哪些知识?
Android的顶层应用程序都是用Java语言写的,底层驱动什么的是用C/C++写的。应用程序开发有一套完整的SDK,使用Java语言,也可以用C/C++,Android提供了一套NDK程序,让Android可以调用C/C++的程序。
你要从语言开始学期,word那攻西是最简单的办公程序,跟语言不靠边。
你先学C语言吧,C学不会别的都白搭。
怎么制作一款游戏或软件?能用手机制作吗?求详细过程与图解!
完全可以
手机上的软件是怎么做出来的
一个人能做出来,但得看你的经验了。
你首先要了解手机的系统吧,针对不同的系统开发的工具平台,开发语言,开发技巧都不相同。你得掌握至少一种手机平台的开发语言。
其次你要懂一些设计吧,除了开发以外,产品设计啊,界面设计啊,用户体验啊方方面面都需要考虑。
第三关于赚钱的事,做一个软件首先考虑的是用户使用,没人用你的软件就算你能卖个天价,无人买单都等于空的。软件做得好,用户满意就有了赚钱的机会,否则还是省省吧。
怎么做手机软件 自己能做吗
做软件是一个团队的事情。如果说你要开始学计算机语言。没有基础,也没人交的话。学起来会很困难。而且也费很长时间。等你学会了。开发也需要时间吧?这样时间过去之后。搞不好别人已经想到了这个点子。已经开发出来了(我是搞软件的。也有些想法。想到点子一个月之后。别人就开发出来了。)
字面理解:JNI表示Java Native Inteface,是Java中定义的一种用于连接Java和C/C++接口的一种实现方式。NDK表示Native Development Kit,是Google在Android开发中提供的一套用于快速创建native工程的一个工具。使用这个工具可以很方便的编写,调试JNI的代码。
以上就是关于使用QT编写安卓手机程序,需要调用NDK吗全部的内容,包括:使用QT编写安卓手机程序,需要调用NDK吗、如何在Android studio下调试ndk、Linux下NDK编译出的SO库能在WIndows下的android工程直接使用么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)