備忘録

備忘録

Android

Androidで複数キーでソートする

Ⅰ. はじめに Java8で追加されたStream APIとComparatorを使ったソートはAndroid N (Android 7.0)以上でなければ動作しません。 Android N 以下の場合はlambdaで例外が発生しアプリが強制終了します。 Ⅱ. 使うライブラリ Lightweight-Stream-API を使います。…

Android 非同期処理を強制しない方法

Ⅰ. はじめに Android 3.0以降では ネットワーク処理をメインスレッドで行うと以下の例外を吐くようになりました。 java.net.SocketException: android.os.NetworkOnMainThreadException Ⅱ. 強制しない方法 以下をonCreateなどに追加するとメインスレッドでネ…

Android 5.x以降でアプリからProxy設定を変更する方法

Ⅰ. はじめに Android 4.xまではProxy Settings などの便利なアプリで簡単にProxy設定が出来ていました。 しかし、 Android 5.xからはセキュリティの為アプリからProxyの設定が出来なくなりました。 それを回避する方法です。(root権限必須) Ⅱ. やり方 Wi-F…

Android アプリ内課金を実装する

Ⅰ. はじめに 「課金してアプリ内に表示される広告を消す」 「課金してアプリ内の石を購入する」 などの実装方法です。継続課金(定期購入)については具体的に触れませんが、 この記事を一通り行った後公式ドキュメントを見れば簡単に実装できます。備忘録と…

Android 5.x PIE チェックを回避する

Ⅰ. 概要 Android 5.xからPIE以外の実行ファルが実行できなくなりました。 PIEのチェックは /system/bin/linker によって行われています。 セキュリティの強化の為に存在するチェックですが、邪魔な場合があるので回避方法についてのメモです。 また、制限さ…

Androidでtcpdumpを利用する

1. tcpdumpのバイナリをこちらからダウンロード http://www.androidtcpdump.com/android-tcpdump/downloads2. adb push tcpdump /data/local/tmp 3. adb shell 4. cp /data/local/tmp/tcpdump /system/xbin/tcpdump 5. chmod 755 /system/xbin/tcpdump 以上※…

Androidで他アプリのメソッドをhookする

Qiitaで投稿しました http://qiita.com/kagasu/items/7a3421ec471349885b10

Android Xposedモジュール開発方法

Qiitaで投稿しました http://qiita.com/kagasu/items/c6b930e7dbe64748090d

Xamarin.AndroidでAlertDialogを出す

RunOnUiThread( () => new AlertDialog.Builder(this) .SetTitle("alert") .SetMessage("helloworld") .Show() );

Xamarin.Androidでroot権限でコマンドを実行する

Java.Lang.Runtime.GetRuntime().Exec(new string[] { "su", "-c", "your command here" });

Windowsで一番いいAndroidエミュレータ

Ⅰ. はじめに Windows用のAndroidエミュレータを比較します。 Ⅱ. 比較 名称 快適さ 複数仮想端末 ゲームプレイ 無料会員登録の手間 Leapdroid 高速 ? ○ なし Genymotion 高速 ○ × なし Droid4X 高速 ? ○ なし Andy 高速 ○(1種類のみ) ○ なし Nox 高速 ○(1…

(root only)Android 4.2以降で機内モードをON/OFFする

Android 4.2(Jelly Bean)以降、 アプリから機内モードの状態を変更させるには、 root権限でなければダメになったようです。root権限が行使出来る場合、以下のコマンドを叩けばOKです。 (Android 4.4.4 Kitkatで動作確認済み)機内モードON adb shell setting…

APK(smali)を弄る

用意するもの・JDK ・apktool.jar https://code.google.com/p/android-apktool/downloads/list手順# デコンパイル 1) java -jar apktool.jar d hoge.apk# smaliを弄る ○弄るときに役に立つもの一覧 ・Dalvik opecodes http://pallergabor.uw.hu/androidblog/…

Could not fetch model of type 'IdeaProject' using Gradle distribution

Android Studioを導入し、 新規プロジェクトを作成しようとしたときに出てきた、 こいつの対処方法 とりあえず、ダイアログのテキストをコピペ Failed to import new Gradle project: Could not fetch model of type 'IdeaProject' using Gradle distributio…

Android MACアドレス 変更方法

必要なもの ・root権限 ・busybox手順 (1/3) Android端末のWi-Fi接続をONにする(2/3) # busybox ifconfig wlan0 hw eth 変更したいMACアドレス 例. # busybox ifconfig wlan0 hw eth 11:22:33:aa:bb:cc Android端末のターミナル、もしくはadb shellして実行…