Android app開発
barisukeです。プログラミングはほぼ初級者ですが、Android アプリを開発することになりました。
なぜ開発することになったかといえば、現在ネット依存症対策の活動を行なっており、新たなサービス開発のため、ネット依存者のスマホ利用状況を統計データ化する必要があるからです。
(ちなみに現在、エンジェルアイズという団体に参画しておりまして、そこで現在小中高生向けにネット依存症の予防活動をしています。)
任意のアプリの利用時間を計測・集計し、それらをアプリ画面上にフローティングで表示して、スマホの過度の使用をやめさせるアプリです。また時間のログを取り、こちらで分析し、新たなサービスを提供することも想定しています。
時間計測・集計するアプリは既存のものがたくさんあります。あとは透明な状態でそれをフローティング表示することができれば良いです。
主な対象は小学校高学年〜高校生です。(幅広すぎ?)
まずアプリ毎の利用時間を計測するアプリを調査していきましょう。
このほかにも非常にたくさんのアプリがヒットしたので全部調査するのは諦めました。
どのような仕組みだと時間を計測できるのかまだ把握できていないので、それを調査したいと思います。
とりあえず適当なアプリのAPKのコードを見ることにしましょう。
ちなみにAPKとはアンドロイドのソフトウェアパッケージのことです。
コードを見る方法ですが、デコンパイルという方法を取ります。
出来上がったプログラムからソースコードを取り出すことですね。macだと以下のように行うのが通常のようです。
Androidのデコンパイルのメモ(リバースエンジニアリング) | じゃがいもは野菜です
ただし、このままだと躓く人もいるかもしれないのでメモ
2の過程のところでclass.dexをd2jのディレクトリに置いて、以下のコマンド
./d2j-dex2jar.sh clases.dex
を実行すると
-bash: ./d2j-dex2jar.sh: Permission denied
という表示が出る。
以下のコマンドを入力することで回避できた。
まず
.$ sudo chmod a+x
を入力すると
Password:
usage: chmod [-fhv] [-R [-H | -L | -P]] [-a | +a | =a [i][# [ n]]] mode|entry file ...
chmod [-fhv] [-R [-H | -L | -P]] [-E | -C | -N | -i | -I] file ...
次に以下
$ ./d2j-dex2jar.sh classes.dex
を入力すると
dex2jar classes.dex -> ./classes-dex2jar.jar
無事classes.dexをclasses-dex2jar.jarに変換できた