写一个完全native应用程序.pptx

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;传智播客C/C++学院2004;那么现在就进入AndroidNDK的心脏:

创建一个完全nativeactivity

处理activity的主要事件

本地的访问显示窗口

取得时间并且计算延迟

用下面的设置创建一个新Anroid工程:

输入Eclipse工程名:NativeAndroid

设置Buildtarget为默认的

输入Applicationname:NativeAndroid

取消勾选CreateActivity

设置MinSDKVersion为3.0

工程被创建好后到res/layout目录删除xml文件。在我们的native程序中不再需要这个UI描述文件。你也可以删除src目录,这样就不会包含一行Java代码了。;这个程序不能简单的运行起来,因为我们还没有创建activity。我们把nativeactivity的模块名(android.app.lib_name)声明到工程根目录下的AndroidManifest.xml文件中,在application中添加内容如下:

activityandroid:name=android.app.NativeActivity

meta-dataandroid:name=android.app.lib_name

android:value=nativeandroid/

intent-filter

actionandroid:name=android.intent.action.MAIN/

categoryandroid:name=android.intent.category.LAUNCHER/

/intent-filter

/activity;用ConvertC/C++向导转换工程到混合C++工程。

到工程中,选择Properties中的C/C++Build将默认的编译命令改为ndk-build。

在PathandSymbols/Includes里面,添加NDK所有语言的包含目录

${env_var:ANDROID_NDK}\platforms\android-19\arch-arm\usr\include

${env_var:ANDROID_NDK}\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.8\include

在相同的位置,在所有语言中添加nativeappglue目录,然后点确定:

${env_var:ANDROID_NDK}\sources\android\native_app_glue

在工程根目录创建jni目录,在里面创建Android.mk文件。它描述了C++文件的编译和native_app_glue模块的链接。这个nativeglue将native代码和NativeActivity绑定在一起:

现在我们可以开始写在nativeactivity里面运行的native代码了。;在jni目录,创建一个Types.hpp文件,用来包含一些常用类型

#includestdint.h

开始写log类来输出日志,创建一个Log.hpp

声明一个新类——Log

public:

staticvoiddebug(constchar*pMessage,...);

staticvoidinfo(constchar*pMessage,...);

staticvoidwarn(constchar*pMessage,...);

staticvoiderror(constchar*pMessage,...);

用NDEBUG标志来激活调试消息

#ifdefNDEBUG

#defineLogDebug(pMessage,...)Log::debug(pMessage,__VA_ARGS__)

#else

#defineLogDebug(pMessage,...)

#endif

NDEBUG宏是定义在NDK编译工具链(toolchain)中的,如果要取消他的定义,让程序能调试只需要修改manifest:applicationandroid:debuggable=true...;创建Android.mk文件:

LOCAL_PATH:=$(callmy-dir)

include$(CLEAR_VARS)

LOCA

文档评论(0)

159****9610 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档