2016年8月6日土曜日

Admob のために、Google Play Services を導入

しばらく前から、Admob にて、Google Play Services を使うようになっていたが、更新も面倒なので、放置していた。

しかし、古いSDKは、2016年9月15日でサポート終了とのメールが来ている。

というわけで、更新!


エクリプスで作成していたアプリだが、さすがにAndroidStudio を導入。

インポートすると、エラーは出たが、メッセージをみて、インストールとかしてれば、あっさり完了。

※一応、書き換えが必要なものもあった。参考
http://qiita.com/shoma2da/items/1e84807809e7d1f4803b


ビルドできたので、リリースAPKを作ろうとしたところ、エラー。

Error:The number of method references in a .dex file cannot exceed 64K.

どうも dex ファイルを64K以下にしろ、みたいな。

そんなん言われても、導入したの Google Play Services だけだし…。


サポート終了を知らせるメールには、
compile 'com.google.android.gms:play-services:9.0.2'
と記述せよと書いてある。

https://developers.google.com/android/guides/setup
を見てみると、やはり
compile 'com.google.android.gms:play-services:9.4.0'
という書き方をしている。

が、どうもこれがマズイっぽい。


以下を参考に
http://qiita.com/niusounds/items/f9a0ab3cbe07878ed8f6

compile 'com.google.android.gms:play-services-ads:9.4.0'

と書いてみた(赤字が追加部分)ところ、すんなり通った!


そんなわけで、1年以上ぶりのアプリ更新、こちらのブログも更新となりましたとさ。

2015年8月18日火曜日

PHPでの「->」の意味

PHPの「->」の意味が分からなかったが、下記ページで理解できた。

参照URL
http://www.phppro.jp/qa/536
http://tdak.hateblo.jp/entry/20140406/1396773476


つまり、javaでいう「.」のこと。

Hogeクラスがあったとして、
Hoge hoge = new Hoge();
hoge.Hogeクラスの変数やメソッド
みたいに呼び出すのと同じ。

2015年8月7日金曜日

Android の apk ファイルの解析

・MAC

1. ~.apk のファイルの拡張子を .zip に変更し解凍する。

2. classes.dex ファイルを jar ファイルに変換する。
dex2jar というツールを使用する。

※詳細は以下のページを参照しました。
http://qiita.com/le_skamba/items/04c0a0cfe420be862122#%E3%82%B9%E3%83%86%E3%83%83%E3%83%973-dex--jar

http://sourceforge.net/projects/dex2jar/

ポイントとしては、実行権限をつけてあげる。
(該当のフォルダまで cd で移動して、chmod +x *)
Mac だと、拡張子 .sh のファイルを使う。
(d2j-dex2jar.sh classes.dex)

3. jar ファイルの拡張子を .zip に変更し解凍する。

4. ~.class ファイルを java ファイルに変換する。
使用するツールは、上記サイトを参考に、JavaDecompiler を使う。

http://jd.benow.ca/

JD-GUI
にてMAC なら jd-gui-osx-1.4.0.tar をダウンロード。
実行して、class ファイル選択すると、まとめて表示される。


・最近は、
androguard を使うのが、良いらしい。

https://code.google.com/p/androguard/wiki/Installation

が、導入方法がさっぱり分からん。