でかすぎる Google Play Services が 6.5.87 で分割された件

Androidアプリでメソッド数が65536を超える場合は少し手間が掛かっていました.

Androidでメソッド数が65536を超えた時の対処方法 - Qiita

GoogleAnalyticsやGoogleMapなどを利用できるライブラリ com.google.android.gms:play-services ですが、実は使っている機能は1つか2つということが多いのではないでしょうか。
com.googleは18513個もメソッドがあるので、これを節約するだけでかなりメソッドの数が減ります。

このよく言われている「com.google.android.gms:play-services」がでかすぎという話.

必要なものだけピックアップして使えるようになったようです.

Setting_Up_Google_Play_Services___Android_Developers

Setting Up Google Play Services | Android Developers

自動で, com.google.android.gms:play-services-base:6.5.87 が読み込まれたりするし, どれを使うべきなのかわかりづらいようなものもあるように思えたり.

あと, 公式ドキュメントや AndroidStudio の自動チェックで, 「推奨」から「非推奨」と言われ始めたバージョン記述「+」で書かれていたり.

compile 'com.google.android.gms:play-services:6.5.+'

compile 'com.google.android.gms:play-services-fitness:6.5.+'
compile 'com.google.android.gms:play-services-wearable:6.5.+'

これらの「+」記述は, 最新 Android Studio 1.0 でも警告される.

version

こう書いてるけど.

At the time of writing, the correct version to use is 6.5.87. As this is a very granular number, it will get updated quite quickly, so be sure the check the latest version when you are coding. Often people will use a ‘+’ to denote versions, such as 6.5.+ to use the latest 6.5 build. However, it’s typically discouraged to use a ‘+’ as it can lead to inconsistencies.

でも, やっぱり「+」は怖くないですか.

Google Play services and DEX method limits | Android Developers Blog


Chrome「Unable to connect to the Internet」からゲームができるとか

なんか Wi-Fi とかネットワークの調子が悪かったりするときに, Chrome で表示されるこれ.

chrome_game

この恐竜でゲームができたりするw



つながらなくてイラッとしたときは, [space]キーを押してからやってみようず.

👉 【Android】無料で遊べる隠れたミニゲーム「Hot Air Balloon」で遊んでみたので出す方法 


Twitter のように端末にインストールしているアプリの一覧を取得する

Twitterが.

Twitterが、公式アプリでユーザーの端末内のアプリ一覧情報を収集する「アプリリスト」を次期アップデートで有効にする。

Twitterヘルプセンター___Twitterのアプリリストとは

Twitter、端末にインストールされたアプリの一覧収集機能を追加 - ITmedia ニュース

インストールしているアプリ情報を取得するのにパーミッションは要らない.

// アイコンから起動できるアプリのみ取得
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager pm = context.getPackageManager();
List<ResolveInfo> packs = pm.queryIntentActivities(intent, 0);
ResolveInfo info;
int count_packs = packs.size();
for (int i = 0; i < count_packs; i++) {
  info = packs.get(i);
  ActivityInfo activityInfo = info.activityInfo;
  String label = activityInfo.applicationInfo.loadLabel(pm).toString();
  String packageName = activityInfo.packageName;
  String icon = "android.resource://" + packageName + "/" + activityInfo.applicationInfo.icon;
  String description = (String) p.applicationInfo.loadDescription(pm);
  String versionName = p.versionName;
  String versionCode = ((int)p.versionCode) + "";

  Log.d("FetchInstalledApps", label + " " + packageName + " " + icon);
}

Intent.CATEGORY_LAUCHER を変えたりしながらいろんな条件で取得できる.

肝は「ActivityInfo」.

ActivityInfo | Android Developers

前述, Twitter は以下のようにアナウンスしている.

情報をTwitterに提供したくない場合は設定で無効にする必要がある。

お行儀の良い大手Twitterだからこんなに丁寧だけど.

すでに, 他のアプリで抜かれててもおかしくない, ようにも思ったり...

あなたのAndroidの個人情報がアプリ開発者によって抜き取り可能かをチェックする方法

Twitterヘルプセンター | Twitterのアプリリストとは