android things中与标准android系统不同的地方

android things并非标准的android系统,但而且很大程度上,things是标准android系统的一个子集(虽然含有某些特殊的部分)。

google的android things管网上对此有专门介绍,https://developer.android.com/things/get-started/platform-differences

部分译文如下:

Android Things基于Android平台,针对嵌入式设备进行了优化。 除了新功能外,Android Things还包含各种与Android不同的系统和API差异。

App的安装

things设备上应用程序的集合由开发人员/设备制造商管理(安装、发布等),并通过OTA更新进行更改(应用升级等),而不是由最终用户管理。 Android Things简化了单个应用程序的使用。 一个应用程序在系统启动时自动启动。

与标准android系统的差异

Android Things针对嵌入式设备进行了优化,这些设备可能不包含与Android手机或平板电脑相同的功能集。 例如,图形用户界面是可选的,因为并非所有设备都包括显示器。

下面概述了Android Things设备当前不支持的Android功能集以及受影响的框架API:

功能 API
System UI
(系统UI:状态条,导航条,快速设置)
NotificationManager:通知管理
KeyguardManager:锁屏管理
WallpaperManager:壁纸管理

VoiceInteractionService

(语音交互服务)

SpeechRecognizer:语音识别
android.hardware.fingerprint FingerprintManager:指纹管理器
android.hardware.nfc NfcManager:Nfc管理器
android.hardware.telephony  SmsManager:短信管理器
TelephonyManager:电话管理器
android.hardware.usb.accessory UsbAccessory:对USB设备提供支持
android.hardware.wifi.aware WifiAwareManager:对Wifi Aware API提供支持
android.software.app_widgets AppWidgetManager:app小部件管理器
android.software.autofill AutofillManager:自动填充管理器
android.software.backup BackupManager:备份管理器
android.software.companion_device_setup   CompanionDeviceManager:管理配套设备的系统级服务
android.software.picture_in_picture     Activity Picture-in-picture:activity的画中画功能
android.software.print PrintManager:打印管理器
android.software.sip SipManager:对SIP API提供支持。

提示:可以通过PackageManager.hasSystemFeature()检查是否支持某种功能。

系统组件

除了API,某些android系统的标准的系统应用程序和程序套件在android things中也没有,包括:

CalendarContract:日历
ContactsContract:联系人
DocumentsContract:文档
DownloadManager:下载
MediaStore:多媒体
Settings:设置
Telephony:电话
UserDictionary:用户字典
VoicemailContract:语音邮件

App的运行时权限

运行在android things中的app必须在manifest文件中声明权限。

由于许多物联网应用程序不需要用户界面或输入设备,因此对Android事件授予应用程序权限的方式与典型的Android应用程序不同。 权限使用Android Studio或Android Things Console授予。

从Android Studio运行应用程序时,将在安装时授予所有权限(包括危险权限)。 这适用于现有应用中的新应用安装和更新的<uses-permission>元素。 可以使用adb工具授予或撤消测试权限。

当准备使用Android Things Console分发应用程序时,将为所有应用程序授予危险权限(而不是最终用户),作为构建创建过程的一部分。 可以在开发期间覆盖它,但不能在实际产品上覆盖它; 最终用户无法修改这些权限。

本地代码

Android Things与Android NDK兼容,可将C / C代码包含到应用中。 但是,由于Android Things设备通常受内存限制,因此应用程序必须使用在manifest文件中使用extractNativeLibs属性在运行时将本机库保留在APK中。

<manifest ...>
  <application
    android:extractNativeLibs="false" ...>
    ...

  </application>
</manifest>

更多有关内容: https://developer.android.com/things/get-started/

猜你喜欢

转载自blog.csdn.net/anod/article/details/84894244