+ All Categories
Home > Documents > Android4.2徹底解剖!

Android4.2徹底解剖!

Date post: 29-Jun-2015
Category:
Upload: leveragesevent
View: 4,415 times
Download: 2 times
Share this document with a friend
Description:
12月27日にヒカラボイベント「Android技術者必見!Android4.2をデベロッパーの視点から徹底解剖!」が開催され、 2012年10月末に発表されたAndroid4.2を、デベロッパー向け情報にフォーカスして惜しみなくお伝えいただきました。
Popular Tags:
59
Android4.2 Android4.2 Android4.2 Android4.2 まとめてみた チームEGG 曽川 義英 小原 宗一郎
Transcript
Page 1: Android4.2徹底解剖!

Android4.2 Android4.2 Android4.2 Android4.2 まとめてみた

チームEGG曽川 義英小原 宗一郎

Page 2: Android4.2徹底解剖!

チームEGGEGGEGGEGGの紹介

チームEGG個人開発コラボ集団

待ち受けトラッパーよるにゃん

1月中にテレビ紹介があります(※詳細は大人の都合で禁則事項)

Page 3: Android4.2徹底解剖!

よるにゃん

Page 4: Android4.2徹底解剖!

待ち受けトラッパー

Page 5: Android4.2徹底解剖!

ブログ紹介

EGG 開発ブログhttp://eggdev.blogspot.jp/

Page 6: Android4.2徹底解剖!

はじめに

新機能の使い方よりも、

前バージョンとの影響がメインになってるかも…

Page 7: Android4.2徹底解剖!

Android4.2のハイライト

Page 8: Android4.2徹底解剖!

コードネーム

コードネーム:Jelly Bean JELLY_BEAN_MR14.2のコードネームは4.1と同じ“Jelly Bean"だからマイナーバージョンアップと思われがち。実際はおもしろい機能がたくさん追加されている。

Page 9: Android4.2徹底解剖!

4.24.24.24.2の端末

Android4.2はGalaxyNexusやNexus7等で利用可能。使ってみたい人はGooglePlayStoreで購入しよう。

Page 10: Android4.2徹底解剖!

マルチユーザ機能

タブレット端末では、ロック画面からユーザを切り替えることができる。家族で一緒に使うもよし、ビジネスに使うもよし。

Page 11: Android4.2徹底解剖!

Lockscreen WidgetsLockscreen WidgetsLockscreen WidgetsLockscreen Widgets

ロック画面にウィジェットを表示できるようになった。これからは、ロックを解除しなくてもスケジュールやメールを確認できる。

Page 12: Android4.2徹底解剖!

MiraCastMiraCastMiraCastMiraCast

無線LANを利用して、Androidからディスプレイへ映像を共有することができる。

Page 13: Android4.2徹底解剖!

DaydreamDaydreamDaydreamDaydream

端末がアイドル時や充電時にスクリーンセーバーを表示する。フォトフレームのように写真を表示したり、最新のニュースやブログを表示できる。

Page 14: Android4.2徹底解剖!

通知パネルから直接アクション

画面左上をスワイプすれば通知バーの操作、画面右上をスワイプすればオプション設定を操作できる。国産スマホでは独自に対応されていたが、OS標準で対応されることになった。

Page 15: Android4.2徹底解剖!

Android4.2は何が変わったの?

Page 16: Android4.2徹底解剖!

開発者オプションはどこへ行った?

ビルド番号を7回タップ

Page 17: Android4.2徹底解剖!

開発者オプションはどこへ行った?

応援してくれます!

Page 18: Android4.2徹底解剖!

開発者オプションはどこへ行った?

なりました!

Page 19: Android4.2徹底解剖!

開発者オプションはどこへ行った?

でました!

Page 20: Android4.2徹底解剖!

開発者オプションはどこへ行った?

Page 21: Android4.2徹底解剖!

ContentProviderContentProviderContentProviderContentProvider

・デフォルトで非公開設定

 勝手にアクセスされたら怖いよね。

 (targetSdkVersion,minSdkVersionが17以上)

<provider ... android:exported="false"/>

Page 22: Android4.2徹底解剖!

マルチユーザって何?

Page 23: Android4.2徹底解剖!

他のユーザからファイルは見える?

Page 24: Android4.2徹底解剖!

じゃあファイルのディレクトリ違うの?

/data/data/com.example.test/files

管理者 ユーザ ユーザ

/data/user/10user/10user/10user/10/com.example.test/files /data/user/11user/11user/11user/11/com.example.test/files

内部ストレージ

外部ストレージ

/storage/emulated/0000 /storage/emulated/10101010 /storage/emulated/11111111

Page 25: Android4.2徹底解剖!

ハードコーディングしていませんか?

内部ストレージ

外部ストレージ

getFilesDir()getFilesDir()getFilesDir()getFilesDir()、getCacheDir()getCacheDir()getCacheDir()getCacheDir()、openFileOutput()openFileOutput()openFileOutput()openFileOutput()

getExternalFilesDir()getExternalFilesDir()getExternalFilesDir()getExternalFilesDir()、getExternalStoragePublicDirectory()getExternalStoragePublicDirectory()getExternalStoragePublicDirectory()getExternalStoragePublicDirectory()

String saveDir = "data/data/パッケージ名/files";・・・

Page 26: Android4.2徹底解剖!

端末情報を使ってませんか?

AndroidIDIMEIMacアドレス・・・

「サーバに保存してるデータください。」

「サーバに保存してるデータください。」

例)アドレス帳・Web履歴

「サーバに保存してるデータください。」

Page 27: Android4.2徹底解剖!

端末情報は怖いので

1.アプリでUUIDを生成する

参考:AndroidDevelopersBlog 2011年3月30日

2.GoogleCloudMessagingのRegistrationIDを使う

3.サーバからIDを発行する

Page 28: Android4.2徹底解剖!

新しいけど新しくないSettings.GlobalSettings.GlobalSettings.GlobalSettings.Global

Settings.Secure

Settings.System

Settings.Global

機内モードなど

Wifi、開発者オプションなどREAD READ READ READ ONLYONLYONLYONLY

Page 29: Android4.2徹底解剖!

Settings.GlobalSettings.GlobalSettings.GlobalSettings.Globalのputputputputを叩いてみた

アプリ 設定

android.permission.WRITE_SECURE_SETTINGS SecurityException

そもそもLintエラーになる

設定画面

直接変更

Intent

ユーザ操作

Page 30: Android4.2徹底解剖!

FragmentFragmentFragmentFragmentの中のFragmentFragmentFragmentFragment

Fragment videoFragment = new VideoPlayerFragment();FragmentTransaction transaction = getChildFragmentManager().beginTransaction();transaction.add(R.id.video_fragment, videoFragment).commit();

Fragment内部に動的にFragmentを入れられる

 getChildFragmentmanagerで実現

 例)ViewPager内でFragmentの切り替え

Page 31: Android4.2徹底解剖!

「さようなら世界」~4.2からの非推奨API~

Page 32: Android4.2徹底解剖!

非推奨APIAPIAPIAPIとは?

もうメンテナンスしないよ~ちゃんと動かなくても許してね!

前のバージョンのAndroidフレームワーク

新しいバージョンのAndroidフレームワーク

非推奨API@deprecated

Page 33: Android4.2徹底解剖!

過去の非推奨の一例

・Activity#showDialog(API13~) →DialogFragment

・Gallery(API16~) →HorizontalScrollView →ViewPager

Page 34: Android4.2徹底解剖!

古きAndoirdAndoirdAndoirdAndoirdを支えたSlidingDrawerSlidingDrawerSlidingDrawerSlidingDrawer

→ アプリ内で独自に実装する

  Android Open Source Projectのコードを使用

Page 35: Android4.2徹底解剖!

後継者に任せたDigitalClockDigitalClockDigitalClockDigitalClock

→ TextClock  カスタマイズしやすくなった

Page 36: Android4.2徹底解剖!

Context.MODE_WORLD_WRITABLEContext.MODE_WORLD_READABLE

悪名高きMODE_WORLD_XXXMODE_WORLD_XXXMODE_WORLD_XXXMODE_WORLD_XXX

他アプリ

直接読み書き可能

データ書き換え電話帳取得・・・

自分のアプリ

ContentProviderBroadcastReceiverService

Page 37: Android4.2徹底解剖!

DateUtilsDateUtilsDateUtilsDateUtilsの一部

月名・曜日名・AM/PMの取得など

→SimpleDateFormat

Page 38: Android4.2徹底解剖!

電池が気になるWakeLockWakeLockWakeLockWakeLock周り

SCREEN_DIM_WAKE_LOCKFULL_WAKE_LOCK

フラグ名 CPU 画面 キーボード

PARTIAL_WAKE_LOCK ON Off Off

SCREEN_DIM_WAKE_LOCK ON Dim Off

SCREEN_BRIGHT_WAKE_LOCK ON Bright Off

FULL_WAKE_LOCK ON Bright Bright

FLAG_KEEP_SCREEN_ON

パーミッション不要

Page 39: Android4.2徹底解剖!

本文と詳細セットのTwoLineListItemTwoLineListItemTwoLineListItemTwoLineListItem

→簡単に作れる

  RelativeLayout、LinearLayoutで自作する

Page 40: Android4.2徹底解剖!

開発ツールはどうなったの?

Page 41: Android4.2徹底解剖!

ViewViewViewView階層をボタンで見れる

UI Automator Testに使えるプロパティを出す

APILevel16からサポート

Page 42: Android4.2徹底解剖!

便利になったGraphicalLayoutGraphicalLayoutGraphicalLayoutGraphicalLayout

他言語のstring.xmlを漏れなく作れる

Page 43: Android4.2徹底解剖!

便利になったGraphicalLayoutGraphicalLayoutGraphicalLayoutGraphicalLayout

他言語でのレイアウトが見れる!

Page 44: Android4.2徹底解剖!

XMLXMLXMLXMLコード補完をさらに改良

テーマに紐づいたリソースをサジェストできる

「?」からはじまるやつ

Page 45: Android4.2徹底解剖!

アプリのテンプレートが増えた

・フルスクリーン(フォトビューア系)

・ログイン入力画面

・設定画面

Page 46: Android4.2徹底解剖!

support-v4は変わったの?

Page 47: Android4.2徹底解剖!

AtomicFileAtomicFileAtomicFileAtomicFile

バックアップファイル元ファイル(書き換える)

コピー

ファイル操作の失敗時にロールバックできる

new AtomicFile(xxx)

Page 48: Android4.2徹底解剖!

AtomicFileAtomicFileAtomicFileAtomicFile

バックアップファイル

失敗時

ファイル操作の失敗時にロールバックできる

failWrite

Page 49: Android4.2徹底解剖!

AtomicFileAtomicFileAtomicFileAtomicFile

ファイル操作の失敗時にロールバックできる

成功時

元ファイル(書き換える)

finishWrite

Page 50: Android4.2徹底解剖!

FragmentManagerFragmentManagerFragmentManagerFragmentManagerのログが出せる!

API Level11で既にあったんですけどね。

Page 51: Android4.2徹底解剖!

デモやります

Page 52: Android4.2徹底解剖!

DigitalClockDigitalClockDigitalClockDigitalClockからTextClockTextClockTextClockTextClock

Page 53: Android4.2徹底解剖!

PresentationPresentationPresentationPresentation

Page 54: Android4.2徹底解剖!

DreamService(DayDream)DreamService(DayDream)DreamService(DayDream)DreamService(DayDream)

Page 55: Android4.2徹底解剖!

One more thing...

Page 56: Android4.2徹底解剖!

GoogleMapAPIGoogleMapAPIGoogleMapAPIGoogleMapAPIがv2v2v2v2に

Fragmentで書ける

レイアウトで色々設定できる

Page 57: Android4.2徹底解剖!

In-app BillingIn-app BillingIn-app BillingIn-app Billingがバージョン3333に

非同期じゃなくなった!

onActivityResultで処理できる!

GooglePlayが課金を管理してくれる!

Page 58: Android4.2徹底解剖!

 ヒカリエ・ラボラトリー(研究所)を略して「ヒカ☆ラボ」 レバレジーズが運営するイベントの総称。 ヒカリエから技術や知識の追求、発信をしていくということで こちらの名前を使ってます。

Page 59: Android4.2徹底解剖!

■本イベントの運営・サポートをしております。

■レバレジーズ株式会社

■設立:2005年4月 資本金:5000万円 従業員数:約220名

■主な事業内容:システムエンジニアリング事業

■フリーランス(個人事業主)の方と企業様とのマッチング  をしております。

■BtoC WEBサービス開発案件などを主に取り扱っております。

とは


Recommended