前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

KitKat 4.4 targetSDKVersionを19にした場合の既存アプリの影響について

http://developer.android.com/intl/ja/reference/android/os/Build.VERSION_CODES.html#KITKAT
の拙訳。
4.4以降対応の端末では以下のような影響がある。

  • デフォルトの{android.preference.PreferenceActivity#isValidFragment PreferenceActivity.isValueFragment} の結果がtrueからfalseになる
  • WebViewでは以前のバージョンではJSのURLを直接評価し、その評価結果は現在のページコンテンツを置き換えない。KITKAT以降をターゲットにしたアプリでJSのURLをロードするには

そのURLの結果で現在のページのコンテンツを置き換える必要がある。

  • AlarmManagerのset()メソッドはシステムがより柔軟性のあるアラームスケジュールを得る為に、不正確な値として解釈されるようになる。
  • Context.getSharedPreferences(String name,int mode) の引数nameにnullを渡すことはできなくなる
  • RelativeLayout がラップしたコンテンツのマージンを正しく計算するように変更される。
  • ActionBarでウィンドウコンテンツオーバーレイの描画が許可される。
  • READ_EXTERNAL_STORAGEパーミッションが常に強制される
  • 呼び出し側アプリに属するパッケージ固有の外部ストレージのディレクトリへのアクセスはREAD_EXTERNAL_STORAGE 及び WRITE_EXTERNAL_STORAGEの権限が不要になる。

担当アプリに該当のクラスが含まれる場合は
targetSDKVersionは無闇に変えずにまずはテストを。

あとWebViewはそもそもchromium版のWebViewになってるからマイグレーションガイドを見ておく必要がある。
http://developer.android.com/intl/ja/guide/webapps/migrating.html