任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

Android NDK C++开发注意事项总结 Android开发技术

   相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识Android123总结如下:   1. 从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector、string摆脱c下面容易出现的数组未初始化、越界,增强应用的健壮性。   2. 很多网友包含了include <vector> 这样头,但仍然无法编译,这里你首先要检查当前文件是否为.cpp后缀,同时为了使用标准库必须加入 APP_STL := stlport_static 在Application.mk文件中。相关对应还有  system              使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持 stlport_static      使用STLport作为静态库,这项是Android开发网极力推荐的 stlport_shared     STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。 gnustl_static      使用 GNU libstdc++ 作为静态库   默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。   3. 支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS += -fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS += -frtti,这里Android123再次提醒大家,第二条说的使用gnustl静态库,而不是stlport   4. 强制重新编译 STLPort ,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项。   5 Android目前最新的NDK版本为r6,相关的学习可以查看NDK中的Samples整体和在PC上开发没有太大的不同。

不会Java或C,Android123告诉你还有选择 Android开发技术

  随着Google Android平台的逐渐开放,很多过去并不是开发Java或C的网友也想涉及,今天Android123高速你新的开发方法。今天抛开Dalvik VM的Java和NDK的C/C++,那么还有什么方法来实现自己的软件呢?     1. Flash Action Script ,对于学过Flash脚本的网友未来可以尝试通过Adobe Open Screen方法通过Flash实现界面UI,可能对于游戏开发来说是一项迈进,从Android 2.1到以后基本上都会支持Flash播放插件。   2. JavaScript+HTML+CSS,这个可能是W3C的Widget开发方式,Web程序员可以简单的通过Html+CSS实现布局,通过JavaScript实现逻辑,或者AJAX方式实现网络访问等等,软件从webkit浏览器直接加载运行。   3. Web网页游戏,现在很多浏览器都可以打网游,这归功于Adobe Flash Player强大的标示和逻辑处理能力,这样的好处显而易见就是块平台方便,用户可以在PC上娱乐,如果网速足够理想在地铁上也可以使用 Android手机浏览器来打网游,怎么样其实想想还是有很多种选择的。

Android 1.0不会支持JNI,无缘C++ Android开发技术

Android 1.0最终的版本无法执行本地JNI调用,基本上C++无缘Android开发,这也符合Google给我提供一个Dalvik版的Java原因,虽然最终Android源代码会全部开源,但是整个系统平台会保证安全,从上一版本的SDK已经看到很多bin程序都移除了SQLite3的移除就是一个暗示,提供足够多的Dalvik API可以让我们了解到这些都是为平台安全准备,还有很多android permission和android签名保护机制就是一种间接的ACL保护,不用把时间耽误到这些方面,如果不开发一个类似Android的Linux操作系统,这些似乎不是我们关心的话题。

AIDL语言提供Android浏览器C++编写插件 Android开发技术

相信Android平台支持Sliverlight和Flash的报道大家都已经看到了,这些组件本身层面很高使用Java语言编写不太现实,至少和Java VM一个层次,需要C/C++这类的本地语言支持,同样Google提供了AIDL语言可以让Android使用本地语言开发,这样Flash和银光的运行库就可以在Chrome lite浏览器上以插件形式正常使用。   同时这将会导致Android平台异常古怪,兼容微软的.Net Framework中的部分特性,参考WPF/E相关资料,同时通过Flash Action Script编写基于Flash的游戏,在显示层也会有所提高。

JNI调用Native C++的so动态库仍然可以 Android开发技术

  目前Android 1.0上仍然可以调用本地的程序,我们发现telnetd、shell这样的程序就是通过JNI调用的Native C++原始的so动态库实现的功能。但是我们自己写的Native C程序在上面执行需要Root权限,上传到系统的System/bin下面也是需要权限的。似乎这些只有在G1的Home+Reject(菜单+挂机)键来实现进入工程模式,通过adb调试接口来替换文件的方式来解决。   考虑了许久这仍然需要漏洞去跳入Root权限用户,目前按照Google的策略是对于Android平台发现漏洞后就会执行强制的更新,最终通过Kill Switch服务器来自动结束恶意程序还是等于白费功夫。否则用户在不更新下会产生安全漏洞,经过特殊构造的攻击程序可以直接威胁Android手机的安全。Android开发网分析后发现JNI调用可以使用Linux系统中现成的命令,比如logcat,获取shell还是可行的。自己做Native应用除非不在Google官方的系统中使用,否则正常用户是不会用这么多步骤或冒风险去安装的,对于最终的部署存在很多问题。同时正常的Native通过res/raw方式部署到market可能会被Google移除。

100% Secure Checkout

PayPal / MasterCard / Visa