当前位置: 首页 > news >正文

网站租金可以做办公费吗网站开发流程文档

网站租金可以做办公费吗,网站开发流程文档,wordpress 照片墙插件,广州市口碑好的网站制作排名这是我转的文章#xff0c;是篇外文翻译#xff0c;将介绍如何学习安装 Android NDK 并开始使用它。在这一教程结束后#xff0c;将创建你自己的项目#xff0c;从 Java 代码简单地调用原生C 语言代码。教程细节技术#xff1a;Android SDK、NDK、C 语言难度#xff1a;进…   这是我转的文章是篇外文翻译将介绍如何学习安装 Android NDK 并开始使用它。在这一教程结束后将创建你自己的项目从 Java 代码简单地调用原生C 语言代码。教程细节技术Android SDK、NDK、C 语言难度进阶预计完成时间60-90 分钟⊙﹏⊙b汗还是挺长时间的先决经验      在开始之前需要先花点时间了解一下这一教程的难度。它的标记是“进阶”。之所以标为“进阶”是因为作者想要确保你符合以下要求1、有Java和C语言经验。2、能适应命令行操作。3、知道如何了解你的 Cygwin、awk 和其他工具的版本。4、能适应 Android Development。5、有一个有效的 Android 开发环境本文撰写时笔者使用的是 Android 2.25、使用 Eclipse 或者可以将 Eclipse 的指导步骤轻松应用于自己的 IDE 上。6、就算并不满足这些条件当然也欢迎你阅读这一教程不过可能在某些步骤遇到困难。      如果满足了以上条件这些困难就会轻易解除。也就是说即使认为自己是个移动开发老手使用 NDK 依然很容易碰到困难和麻烦。请注意可能要自行排查故障才能让一切正常运转于你的开发系统中。      本教程提供完整的样例项目的开源代码。我么有找到下载的东东何时使用 NDK 的说明       好正在阅读这篇教程的你也许已经在考虑在你的 Android 项目中使用 NDK 了。不过作者想要花点时间讨论一下 NDK 为什么那么重要、何时该使用它以及——同等重要的何时不该使用它。        总的来说只有当应用程序真的是个处理器杀手的时候你才需要使用 NDK。也就是说你设计的算法要利用 DalvikVM 中所有的处理器资源而且原生运行较为有利。还有别忘了在 Android 2.2 中JIT 编译器会提高类似代码的效率。       另一个使用 NDK 的原因是方便移植。如果在现有的应用程序中有大量的 C 语言代码那么使用 NDK 不仅可以加速你项目的开发进程也能在你的 Android 和非 Android 项目中保持修改的同步。这一点对于那些为其他平台而写的 OpenGL ES 应用程序来说尤为如此。      别以为只要用了原生代码就能提高应用程序的效率。Java 与原生C 语言之间的转换会增加一些资源开销因此只有你有一些集中消耗处理器资源的任务时才真正有必要这么做。第 0 步下载工具       好了现在就开始吧你需要下载 NDK。先来开始下载因为在下载的过程中你可以检查一下确保所需要用到的其余工具的版本都正确。       从 Android 网站下载适合你的操作系统的 NDK。       现在对照下列检查你的工具版本             1、如果在 Windows 下Cygwin 1.7 或更高版本             2、将 awk 升级到最新版本我们使用的是 20070501             3、GNU Make 3.81 或更高版本我们使用的是 3.81          如果其中任何一个的版本太旧请在继续之前先升级。第 1 步安装 NDK        既然 NDK 已经下载完成没错吧你就需要解压缩它。解压后将它放入合适的目录中。要把它放在和 Android SDK 相同的目录下。记住你把它放在哪里了。        现在你也许想要在路径设置中添加 NDK 工具。如果你在 Mac 或 Linux 下你可以用你的原生路径设置来完成。如果你在 Windows 下的 Cygwin你就需要设置 Cygwin 的路径设置。第 2 步创建项目         创建一个常规的 Android 项目。为了避免日后的问题你项目的路径必须不包含空格。作者的项目有个叫做“com.mamlambo.sample.ndk1”的包带有一个叫做“AndroidNDK1SampleActivity”的默认 Activity——你之后还会看到它们。               在这个项目的顶层创建一个叫做“jni”的目录——这是你放置原生代码的地方。如果你很熟悉 JNI那你就会知道 Android NDK 很大程度上基于 JNI 的概念——它本质上是个只有有限的 C 语言编译头文件的 JNI。第 3 步添加一些 C 语言代码       现在在 jni 文件夹中创建一个叫做 native.c 的文件。一开始将以下 C 语言代码写入该文件我们以后再添加另一个函数 #include  #include  #include  #define DEBUG_TAG NDK_AndroidNDK1SampleActivity  void Java_com_mamlambo_sample_ndk1_AndroidNDK1SampleActivity_helloLog(JNIEnv * env, jobject this, jstring logThis)  {  jboolean isCopy;  const char * szLogThis (*env)-GetStringUTFChars(env, logThis, isCopy);  __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, NDK:LC: [%s], szLogThis); (*env)-ReleaseStringUTFChars(env, logThis, szLogThis);  } 复制代码       这个函数实际上非常浅显。它获取一个 Java 对象的字符串参数将它转换为 C-string然后将它写入到 LogCat 中。        不过该函数的名字很重要。它遵循了以“Java”的特定字样开头后面跟着包名称然后类名称然后方法名称和 Java 中定义的一样。每一部分都由一根下划线隔开而不是点。        该函数的头两个参数也很重要。第一个参数是 JNI 环境它与 helper 函数会被频繁调用。第二个参数是该函数所属的Java 对象。第 4 步从 Java 中调用原生代码        既然你已经写好了原生代码让我们回头看看 Java 这边。在默认的 Activity 中按照你的喜好创建一个按钮并添加一个按钮处理器。从按钮处理器中对 helloLog 作调用 helloLog(This will log to LogCat via the native call.); 复制代码        然后你必须在 Java 这边添加函数声明。在你的 Activity 类中添加如下声明 private native void helloLog(String logThis); 复制代码       它告诉编译和链接系统该方法将在原生代码中实现。      最后你需要加载原生代码最终编译到的库。在 Activity 类中添加如下的静态初始化程序来根据名称加载库库的名字随你决定在下一步还会用到 static {  System.loadLibrary(ndk1);  } 复制代码 第 5 步添加原生代码的 Make 文件               在 jni 文件夹中现在你需要添加在编译中要用到的 makefile。该文件必须以“Android.mk”命名如果你之前命名的文件为 native.c库为 ndk1那么 Android.mk 的内容就应该是这样 LOCAL_PATH : $(call my-dir) include $(CLEAR_VARS) LOCAL_LDLIBS : -llog LOCAL_MODULE : ndk1 LOCAL_SRC_FILES : native.c include $(BUILD_SHARED_LIBRARY) 复制代码 第 6 步编译原生代码            既然你的原生代码已完成make 文件也已就绪是时候编译原生代码了。在命令行下Windows 用户在 Cygwin 下你需要在你的项目的根目录下运行 ndk-build 命令。ndk-build 工具就在 NDK 工具目录中。将它添加到我们的路径中是最方便的办法。       在之后的编译中如果你使用“ndk-build clean”命令那么你可以确保所有的东西都被重新编译了。第 7 步运行代码      现在你已准备妥当可以运行代码了。在你最喜欢的模拟器或者手持设备中载入该项目查看 LogCat然后点击按钮。可能有两件事情会发生。首先它可能正常工作了。这样的话恭喜你不过你可能还是想要继续阅读下去。      你也可能在 LogCat 中得到类似“Could not execute method of activity”这样的错误。这很正常。这只是说明你漏掉了某个步骤罢了。用 Eclipse 很容易发生这种情况。通常Eclipse 被设置为自动重编译。        如果它不知道有东西被修改了它就不会自动重编译和重链接。在本例中Eclipse 不知道你编译了原生代码。所以“清除cleaning”该项目在 Eclipse 工具栏中点击项目Project-清除Clean强制 Eclipse 重编译。第 8 步添加另一个原生函数       接下来的函数将不仅演示返回值的能力还会演示返回例如字符串这样的对象的能力。在 native.c 中添加如下函数 jstring Java_com_mamlambo_sample_ndk1_AndroidNDK1SampleActivity_getString(JNIEnv * env, jobject this, jint value1, jint value2) { char *szFormat The sum of the two numbers is: %i; char *szResult; // add the two values jlong sum value1value2; // malloc room for the resulting string szResult malloc(sizeof(szFormat) 20); // standard sprintf sprintf(szResult, szFormat, sum); // get an object string jstring result (*env)-NewStringUTF(env, szResult); // cleanup free(szResult); return result; } 复制代码        为了正常编译你会需要添加一个 include stdio.h 的声明。而且为了响应这个新的原生函数请在你的 Activity Java 类中添加如下声明 private native String getString(int value1, int value2); 复制代码        你现在可以随意设定其功能。我们使用如下两个调用和输出 String result getString(5,2);Log.v(DEBUG_TAG, Result: result); result getString(105, 1232); Log.v(DEBUG_TAG, Result2: result); 复制代码        回到 C 语言函数中你会注意到我们做了许多事情。首先我们在使用 malloc() 函数中的 sprintf() 调用时需要创建一个缓冲器buffer。如果你不会忘记通过使用 free() 函数清理结果那么这就很合理了。        然后为了传回结果你可以使用一个叫作 NewStringUTF() 的 JNI helper 函数。该函数基本上就是获取一个 C 语言字符串以之创建一个新的 Java 对象。这个新的字符串对象就可以在之后作为结果返回你就可以在 Java 类中将它作为一个常规 Java 字符串对象使用了。 指令集、兼容性        Android NDK 需要 Android SDK 1.5 或更高版本。在新版本的 NDK 中有些新的头文件可用于扩大对某些 API 的访问——特别是 OpenGL ES 库。       不过那些都不是我们要谈论的兼容性。这是原生代码在使用时由处理器构架编译。因此你要问自己的一个问题会是它支持何种处理器构架在目前的 NDK 中在本文撰写时它只支持 ARMv5TE 和 ARMv7-A 指令集。默认设置下目标架构被设置为 ARMv5TE它可以在使用 ARM 芯片的 Android 设备上运行。       它预计未来将支持其他指令集其中提到了 x86。这其中有很有意思的潜在状况NDK 解决方案无法适用于所有的设备。例如市面上有使用 x86 指令集的英特尔IntelAtom 处理器的 Android 平板设备。       那么 NDK 在模拟器上如何呢模拟器运行的是真正的虚拟机包括完整的处理器虚拟。没错这意味着在虚拟机中运行 Java 就等于是在虚拟机中运行了一个虚拟机。总结       成果如何你装上了 Android NDK最终完成了部分使用原生 C 语言代码的功能完善、正常运行的应用程序了吗我们希望如此。在这一过程中有许多潜在的“出问题啦”的可能不过从某些方面来看这些都是值得的。 转载于:https://www.cnblogs.com/songtzu/archive/2013/03/05/2944063.html
http://www.zqtcl.cn/news/693598/

相关文章:

  • 黄岩做网站的公司网站栏目相关内容在哪采集啊
  • 邯郸市城市建设局网站快速建站平台
  • 华为官方手表网站wordpress文章图片链接
  • 做个网站需要多久腾讯云云服务器官网
  • 松江企业做网站一个阿里云怎么做两个网站
  • 网站制作+app+公众号app制作定制外包88
  • 企业网站建设有哪些好处制作网页之前必须先建立什么
  • 盐亭县建设局网站网站建设基本技术
  • 优化seo网站高质量的邯郸网站建设
  • 网站开发 合同范本软件设计专业介绍
  • 南山网站建设设计莱州网站建设关键字排名优化网络托管微信代运营
  • 传统门户网站有哪些网络营销公司全网推广公司
  • 桥头镇网站建设卢松松外链工具
  • 手机网站导航设计大连市自然资源局
  • 装修网站vr全景图怎么做软件工程师证书报考条件
  • 部门网站建设管理经验交流材料定制开发app
  • 做网站 就google权重查询
  • 网站制作 福宁网络有限公司绚丽的网站
  • wordpress ip 访问重庆seo顾问服务
  • 灰色调网站自动seo系统
  • 河北省网站建设公司排名企业网络信息安全
  • 郑州网站定制建个微商城网站
  • 北京好网站制作公司哪家好vs加数据库做网站
  • 电子商务网站建设与管理第四章答案seo入门培训学校
  • 温州最便宜网站建设有哪些网站可以做推广
  • 郑州网站建设制作公司wordpress播放m3u8
  • wordpress企业站手机客户端wordpress获取主页路径
  • 免费开通的网站外国网站在中国做推广
  • 揭阳公司做网站泰国网站域名
  • 上海网站制作方法北京网站制作设计推广公司