东晋建立的第一个侨县如何使用NDKc++建立第一个Android应用

如何使用NDK c++建立第一个Android应用,Adroid是最近几年的热门,未来几年想必也是。市面上有很多关于Adroid开发的书籍,也有不计其数的资料描述这些。但大多是基于Java开发,实际上有那么一批人在那些领域如游戏,网络,3D图形等为了追求程序执行效率采用的是C++开发,自NDK出现后,使用C++开发Adroid成为可能,但书籍上...
Android是最近几年的热门,未来几年想必也是。市面上有很多关于Android开发的书籍,也有不计其数的资料描述这些。但大多是基于Java开发,实际上有那么一批人在那些领域如游戏,网络,3D图形等为了追求程序执行效率采用的是C++开发,自NDK出现后,使用C++开发Android成为可能,但书籍上将这部分的就屈指可数,有时还会将人引入歧路。使用C++开发门槛很高,许多充满热情的人由于摸不着门道或耐不住性子,热情冷却,该项知识也半途而废。鉴于此,笔者根据实际开发经验,指导有C++开发功底的人进入Android开发的殿堂,而无需多走弯路。工具/原料ADT(集成了eclipse,cdt,ndkplug-in)NDK(用它来编译c/c++程序)JDK(Java开发包)ANT(eclipse打包插件)方法/步骤1不啰嗦,环境安装和设置一笔带过。•安装JDK(双击执行安装向导即可)•解压adt,NDK,ant到D盘(或其他目录)步骤阅读2•设置环境(系统)变量•依次添加JAVA_HOME,ANDROID_SDK_HOME,ANT_HOME,NDK_HOME变量例如:1.JAVA_HOME=C:\\ProgramFiles\\Java\\jdk1.7.0_052.ANDROID_SDK_HOME=D:\\adt-bundle-windows-x86-20140702\\sdk3.ANT_HOME=D:\\apache-ant-1.9.44.NDK_HOME=D:\\android-ndk-r10•添加Path变量JAVA_HOME%\\bin;%NDK_HOME%;%ANDROID_SDK_HOME%\\platform-tools;%ANT_HOME%\\bin步骤阅读3安装后检验:打开控制台,依次输入 •javac–version(检验JDK安装) •ant–version(检验ant安装) •ndk-build–version(检验NDK安装) •adbdevices (检验androidplatformstools安装)如果以上命令都是有效命令,安装完成步骤阅读4打开eclipse,•菜单选择File->new->Project->Android->AndroidApplicationProject创建Android应用。步骤阅读步骤阅读5•输入应用程序名称Hello•注意要选择TargetSDK版本,我的手机是Android4.2系统,所以选择API17,选择高出实际手机版本,编译后的APK运行会crash,这里也可以不选,后面还有选项可对此进行设置步骤阅读6接下来四个对话框都选默认值即可步骤阅读步骤阅读步骤阅读步骤阅读7工程创建完毕,•右键单击工程runas->AndroidApplication,插入手机(使用真机验证,模拟器太慢),不出意外,手机端会运行右面所示界面到此基于Java的Android开发环境建立并测试完毕,接下来让环境支持基于NDK的c/c++的开发。步骤阅读步骤阅读步骤阅读8将Android工程变为支持C++编译。右键单击工程,Androudtoos->AddNativeSupport,在弹出对话框中直接点击finish,此时eclipse会自动在工程文件中创建jni文件,含对应配置文件和源文件步骤阅读步骤阅读步骤阅读9工程此时转换为c/c++工程,点击鼠标右键,可以看到buildproject选项,但此时编译有错,因为转换后的工程需要设置NDK编译环境步骤阅读10点击eclipse最上层菜单windows->preferences->Android->NDK设置NDK路径步骤阅读11右键工程,在properties->c/c++build中添加${NDK_HOME}\\ndk-build.cmd这里设置的是ndk-build的路径,注意NDK_HOME为自设的环境变量步骤阅读12此时进入工程文件jni文件加下可以执行ndk-build查看编译结果,也可在ecplise中执行build-project编译工程,编译后的文件在libs文件夹下,名为libhello.so,自此C++/NDK编译环境建立完毕步骤阅读步骤阅读13写个c++函数试试。向界面中拖入一个按钮控件步骤阅读14•编辑res\\layout\\activity_main.xml文件,在TextView中加入android:id=“@+id/show”•添加android:onClick=“clickHandler”步骤阅读15修改jni文件夹下hello.cpp为:#includejstringJniString(JNIEnv*env){returnenv->NewStringUTF(\"Hello,NDK\");}extern\"C\"{JNIEXPORTjstringJNICALLJava_com_example_hello_MainActivity_stringFromJNI(JNIEnv*env,jobjecto){returnJniString(env);}}16修改src文件夹下java源文件MainActivity.java,添加如下代码publicvoidclickHandler(Viewsource){TextView tv=(TextView)findViewById(R.id.show);       tv.setText(stringFromJNI());} publicnativeString stringFromJNI(); static{       System.loadLibrary(\"Hello\");   }由于jni文件夹下Android.mk文件中定义的编译后的文件为libHello.so(Hello首位大写),所以上述System.loadLibrary(“Hello”)要用Hello(H大写),否则apk运行在手机上会因为找不到库文件而crash.LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_MODULE   :=HelloLOCAL_SRC_FILES:=Hello.cppinclude$(BUILD_SHARED_LIBRARY)17完成以上项目后先cleanproject(重要),然后buildproject,运行程序,在手机端会运行程序,点击button按钮,默认的helloworld会变为hello,NDK.到此,C++开发android程序环境建立及测试完成如果对你有用,请投宝贵一票,谢谢!步骤阅读END

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/qErqPM36J7.html

(0)

相关推荐