- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NDK自带实例分析
目标读者:
NDK入门,有android开发基础,了解C语言语法。
要求:
已经阅读过OVERVIEW.TXT(Android NDK概述)等NDK自带的几份文档,NDK环境已经安装好。更多信息阅读【参考资料】
前言:
在 HYPERLINK 论坛中发了几篇关于NDK的帖子,同时查看了一下相关论坛,发现现在搞NDK的还少,不过还有很多人在门外观望,NDK现在相关的中文资料比较少,能参考的多是android-ndk-1.5_r1中自带的英文文档,为了更快的入门,本文将以NDK1.5自带实例进行分析,然后在这基础上(介绍分析了)自己写一个简单的例子。
正文:
熟悉环境:
不要急着就去编译代码,先熟悉一下相关的目录结构,以便在后面碰到问题时也好查找,在安装完android-ndk-1.5_r1之后,可以看到如下目录
Apps :
存放带有jni接口的android工程目录(工程里面有利用native关键字定??的java函数)
Build :
存放着几乎所有的ndk编译相关的脚本以及必要的静态链接库。
Doc :
存放着ndk的所有“官方”文档,每一篇文档对于jni编写者来说这里面的任何一点点资料都是无价的
INSTALL.TXT — 说明如何安装、配置NDK
OVERVIEW.TXT — 概要介绍NDK的功能和用法
ANDROID-MK.TXT — 说明Android.mk的用法, Android.mk用来指定需要编译的源代码
APPLICATION-MK.TXT — 说明Application.mk的用法 file, Application.mk用来指定目标应用
HOWTO.TXT — 介绍与NDK开发相关的任务.
SYSTEM-ISSUES.TXT — 如果用NDK开发,你需要了解Android系统映像相关的知识
STABLE-APIS.TXT — NDK头文件列表
另外,还包含了“bionic”C库的详细信息,如果用NDK开发,你应该了解这些信息。路径:ndk/docs/system/libc/:
OVERVIEW.TXT—介绍“bionic”C库及其特性
Out:
存放一些中间的临时文件,例如jni的.c/.cpp文件编译过程中产生的.o文件等。
Source
存放jni文件的.c/.cpp的源代码文件
我们需要分析的代码就在source里面,让我们先从这里开始。下面说明一下各应用的功能。NDK包含了两个Android应用,用来说明如何在Android应用中用原生代码。
hello-jni—该示例:调用共享库(shared library)的原生方法获取一个字符串,并显示在应用的界面上。
Two-libs—该示例:动态加载一个共享库,并调用其中的方法,该方法由一个导入到共享库的静态库实现。
万里长征第一步:
做为一份分析文档,就不详细说明环境的安装与配置了,大家可以参考:Android NDK 开发环境安装和配置 这篇文档,顺利的话,就可以出现如下界面
代码:
//android 中调用的代码
public class HelloJni extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* Create a TextView and set its content.
* the text is retrieved by calling a native
* function.
*/
TextView tv = new TextView(this);
tv.setText( stringFromJNI() );
setContentView(tv);
}
/* A native method that is implemented by the
* hello-jni native library, which is packaged
* with this application.
*/
public native String stringFromJNI();
/* This is another native method declaration that i
您可能关注的文档
最近下载
- 领读经典-外国文学(1)(山东大学)中国大学MOOC慕课 章节测验期末考试客观题答案.docx VIP
- 《电机与拖动基础》课件(共十一章).ppt VIP
- 《PyTorch与深度学习实战》第2章 PyTorch深度学习通用流程.pptx VIP
- 简谱D 想着我Think of Me简谱歌剧魅影.pdf VIP
- 2023-2024学年安徽省马鞍山市第八中学九年级上学期期中考试化学试卷.pdf VIP
- 《PyTorch与深度学习实战》第3章 PyTorch深度学习基础.pptx VIP
- 好书推荐《朝花夕拾》读书分享名著导读PPT课件.pptx VIP
- 22个专业95个病种中医临床诊疗方案目录44.pdf VIP
- 精品解析:天津市第四十三中学2024-2025学年高一上学期第一次月考英语试题(解析版).docx VIP
- 2025年北京市东城区九年级初三一模语文试卷(含答案).docx
文档评论(0)