android程序中的AndroidManifest.xml中的uses-feature详解
2016-06-30 09:51
489 查看
android程序中的AndroidManifest.xml中的uses-feature详解
AndroidManifest.xml中的uses-feature
在android的manifest文件:AndroidManifest.xml
中,有个:
uses-feature
这个xml节点。
用于指定android程序,是否需要某种硬件或软件资源/功能。
uses-feature的语法
<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" /> |
android:name
硬件或软件资源的名字。常见的有:
硬件方面的:
摄像头:
android.hardware.camera
各种传感器:
加速计
:android.hardware.sensor.accelerometer
气压计
:android.hardware.sensor.barometer
指南针
:android.hardware.sensor.compass
陀螺仪:android.hardware.sensor.gyroscope
感光:
android.hardware.sensor.light
近距离感测
:
android.hardware.sensor.proximity
麦克风:[code]android.hardware.microphone
定位:
android.hardware.location
USB:
USB Host:
android.hardware.usb.host
WIFI:
android.hardware.wifi
蓝牙:
android.hardware.bluetooth
软件方面的:
Bluetooth Low Energy:
android.software.bluetooth_le
VOIP:
android.software.sip.voip
更多的,可见:
http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference
android:required
android:required="true":表示需要设备具有某个功能。
如果设备没有该功能,则程序不工作,就是可以理解的
android:required="false":表示希望设备,最好具有某个功能
设备即使没有该功能,程序也应该可以正常工作
为了程序工作的更好,最好具有该功能。
如果不指定,默认为true:
?
android:qlEsVersion
是和OpenGL ES,比如:OpenGL ES 1.0
OpenGL ES 2.0
OpenGL ES 3.0
之类的有关。
我这里不涉及到,不去深究。
uses-feature写法举例
举例:1.某程序需要蓝牙和摄像头,就可以这么写:
?
?
?
?
uses-feature的注意事项和其他说明
uses-feature,只是起到指示性的作用,不是强制的检测
官网说了:uses-feature,只是起到指示性的作用,不是强制的检测
意味着:
如果像上面的,我写了:
?
[2013-11-05 10:15:37 – com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Parser exception for D:\DevRoot\xxxxxxxxxxxxxx\AndroidManifest.xml: Element type "uses-feature" must be followed by either attribute specifications, ">" or "/>". [2013-11-05 10:15:37 – yyyy] Error in an XML file: aborting build. |
?
本意是:希望此android设备必须有usb的host,否则没法工作。
但是实际上是:
即使没有usb的host,该app,也是可以在该android设备上面跑的
只不过不能正常工作罢了。
而作为Android系统,是不是强制去检测:
当此android设备,没有usb的host,就不让该app运行。
是没有这个强制检测的。
写android的app时最好还是加上合适的uses-feature的说明比较好
不过呢:对于其他一些程序,比如Google Play
会根据你的程序中的uses-feature的声明,去过滤,分类android的app的。
另外,你的程序中,也最好,根据实际需要,去加上合适的uses-feature的说明,比较好。
方便用户和其他人明白,你的app对于资源的需求:
至少间接的相当于:给当前app,弄了个prerequisite前提条件了。
便于用户清楚需要哪些软硬件条件,才能运行你的当前的app。
可以用aapt去检测android的app(xxx.apk)中的uses-feature属性
参考官网的:Testing the features required by your application
找到对应
adt-bundle-windows/sdk/platform-tools/aapt.exe |
?
注:
1.我这里是在cygwin下运行aapt的。
你可以在windows的cmd下,效果是一样的,只不过貌似中文会有乱码。。。
相关文章推荐
- Android数据存储五种方式总结
- Android实现双进程守护
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
- 跟我学android之四 事件驱动模型
- 跟我学android之四 事件驱动模型
- 跟我学android之四 事件驱动模型
- [置顶] Android-PullToRefresh上拉下拉刷新加载更多,以及gridview刷新功能的Library下载地址
- android.graphics.Camera API 中文翻译
- Android listview局部刷新和模拟应用下载(zhu)
- Android属性动画Property Animation系列三之LayoutTransition(布局容器动画)
- 从Android代码中来记忆23种设计模式
- android 点击输入框之外的地方隐藏软键盘
- 高灵活低耦合Adapter快速开发攻略
- Android 发送短信
- Android 如何搭建一个局域网 Web 服务器
- 不属于底部导航栏上的Fragment 替换底部的Fragment
- Android实训案例(七)——四大组件之一Service初步了解,实现通话录音功能,抽调接口
- 安卓获得状态栏高度
- Android程序的目录结构
- Android 应用进程启动流程