barilog

エンジニアリング見習い雑記

Android app開発

barisukeです。プログラミングはほぼ初級者ですが、Android アプリを開発することになりました。

なぜ開発することになったかといえば、現在ネット依存症対策の活動を行なっており、新たなサービス開発のため、ネット依存者のスマホ利用状況を統計データ化する必要があるからです。

(ちなみに現在、エンジェルアイズという団体に参画しておりまして、そこで現在小中高生向けにネット依存症の予防活動をしています。)

www.angels-eyes.com

 

 

 

任意のアプリの利用時間を計測・集計し、それらをアプリ画面上にフローティングで表示して、スマホの過度の使用をやめさせるアプリです。また時間のログを取り、こちらで分析し、新たなサービスを提供することも想定しています。

時間計測・集計するアプリは既存のものがたくさんあります。あとは透明な状態でそれをフローティング表示することができれば良いです。

 

主な対象は小学校高学年〜高校生です。(幅広すぎ?)

 

まずアプリ毎の利用時間を計測するアプリを調査していきましょう。

play.google.com

play.google.com

play.google.com

play.google.com

play.google.com

play.google.com

このほかにも非常にたくさんのアプリがヒットしたので全部調査するのは諦めました。

どのような仕組みだと時間を計測できるのかまだ把握できていないので、それを調査したいと思います。

とりあえず適当なアプリのAPKのコードを見ることにしましょう。

ちなみにAPKとはアンドロイドのソフトウェアパッケージのことです。

APK (ファイル形式) - Wikipedia

コードを見る方法ですが、デコンパイルという方法を取ります。

wa3.i-3-i.info

出来上がったプログラムからソースコードを取り出すことですね。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に変換できた