Android Things 分析編

# Overview

[Android Things 事始め](http://qiita.com/hidenorly/items/d57b62f93375c278e2a3)　では、developer preview 1 を Intel Edison for Arduinoで動かしてみました。

こちらのページでは分析をしてみます。

# 通常のAndroidとの違いは何か?

## apk編

```
edison:/system/app $ ls   
AndroidThings BluetoothMidiService ExtShared HTMLViewer               KeyChain     UserDictionaryProvider WifiSetup 
Bluetooth     CertInstaller        GoogleTTS IoTFrameworkPackageStubs PacProcessor WallpaperBackup        webview
```

AndroidThings.apkやIoTFrameworkPackagesStubs.apkがありますね。

```
edison:/system/priv-app $ ls
BackupRestoreConfirmation ExtServices             IoTLauncher          PackageInstaller SettingsProvider    gapps_links 
CalendarProvider          ExternalStorageProvider ManagedProvisioning  PrebuiltGmsCore  SharedStorageBackup 
ContactsProvider          FusedLocation           MediaProvider        Provision        Shell               
DefaultContainerService   GoogleServicesFramework MtpDocumentsProvider ProxyHandler     StatementService    
DownloadProvider          InputDevices            OneTimeInitializer   Settings         TelephonyProvider   
```

IoTLauncher.apkがありますね。

## media_codec.xml

```
<MediaCodecs>
    <Include href="media_codecs_google_audio.xml" />
</MediaCodecs>
```

さすがに、audio codecだけみたいです。

## com.google.android.things

```/system/etc/permissions/iot_features.xml
<permissions>
    <!-- Marks this device as an iot device. -->
    <feature name="android.hardware.type.iot" />

    <!-- Add our com.google.android.things library. -->
    <library name="com.google.android.things"
             file="/system/framework/com.google.android.things.jar" />
</permissions>
```

ということで、うーーん、uses-featuresでiotを指定できるのと、com.google namespaceなので、libraryはGoogleのproprietary binaryみたいですね。

## fonts

```
/system/fonts $ ls
AndroidClock.ttf   DroidSans.ttf         DroidSansMono.ttf Roboto-Regular.ttf 
DroidSans-Bold.ttf DroidSansFallback.ttf Roboto-Bold.ttf
```

ということで、さすがに限定されています。

## jar

```
/system/framework $ ls
am.jar                               conscrypt.jar        ims-common.jar                  sm.jar               
android.test.runner.jar              content.jar          input.jar                       svc.jar              
apache-xml.jar                       core-junit.jar       javax.obex.jar                  telecom.jar          
appwidget.jar                        core-libart.jar      media_cmd.jar                   telephony-common.jar 
bmgr.jar                             core-oj.jar          monkey.jar                      uiautomator.jar      
bouncycastle.jar                     dpm.jar              oat                             voip-common.jar      
bu.jar                               ethernet-service.jar okhttp.jar                      wifi-service.jar     
com.android.future.usb.accessory.jar ext.jar              org.apache.http.legacy.boot.jar wm.jar               
com.android.location.provider.jar    framework-res.apk    pm.jar                          x86                  
com.android.media.remotedisplay.jar  framework.jar        requestsync.jar                 
com.android.mediadrm.signer.jar      hid.jar              services.jar                    
com.google.android.things.jar        ime.jar              settings.jar           
```

というわけで、先のcom.google.android.things.jarですね。特筆すべきは。

## public library

```
system/vendor/etc $ cat public.libraries.txt                                                                   
..snip..
libandroidthings_jni.so
libperipheralman.so
```

android things関係がやはり追加されています。