android apkからjavaファイルを生成するTool

androidのapkからjava(ソースコード)を生成するToolを作成した。

アプリケーション

完全に復元できるわけではないが、気になるアプリの実装を確認するのに便利。
解凍DLLや逆アセンブラToolを順序良く実行しているだけ。

※2012/01/31 追記
XMLファイルも復元可能にした。

電源ON時のアニメーションについて

アンドロイドでの電源ON(電源オン時・起動時)のアニメーションについて

BootAnimation(ブートアニメーション)について確認出来た内容を記載。
以下の情報を使用する事で任意の電源ONアニメーションを再生させる事
が出来る。

  • 参考ソース

frameworks\base\cmds\bootanimation
BootAnimation.cpp


  • 格納パス(移動機・端末内)
  1. /data/local/bootanimation.zip
  2. /system/media/bootanimation.zip

※上位に記載したパスから参照する。
 よって両方に格納してあった場合、data/local/が参照される。

  • ファイル構成
  • 任意の名前及び数のフォルダ(以下例としてpart01とする)
  • desc.txt

これを無圧縮zipで圧縮し、ファイル名を「bootanimation.zip」
とする事。

  • desc.txtの詳細

参考関数:BootAnimation::movie()
一行目  :イメージの横、縦、fps
二行目以降:p、再生回数、停止時間、イメージの相対Path
※区切りは半角スペースで区切る事。
※pは文法解釈に必要なので必ず記載する事。
※再生回数は0で連続再生となる。

よって、300*300の画像をpart01に適当な枚数保存しておき
それらを再生させたい場合は以下の文法となる。


  • desc.txtのサンプル

一行目:300 300 30
二行目:p 1 0 part01

これだけでユーザー独自の電源ON時のアニメーションを作成
出来るのだからかなり柔軟に出来ていると思う。

掛け算(九九)表示プログラム No.2

色々試しているがやはり86Byteの手法を見つけられない。

  • main再帰
  • 順列での計算


前回掲載と同じアルゴリズムであるが、少しByte数を削れたので記念に掲載。

#include<cstdio>
int main(){for(int i=9,n;i++<99;n&&printf("%dx%d=%d\n",i/10,n,i/10*n))n=i%10;}

掛け算(九九)表示プログラム

Aizu Online Judgeで遊んでみる。
http://rose.u-aizu.ac.jp/onlinejudge/index.jsp

Problem Set Volume 0 No.0000に九九を表示する問題がある。
普通に2重ループで記載していてはCodeサイズが増えてしまう。
一度のループの機構で以下を考えた。

#include <stdio.h>
int main(){for(int i=9;i++<99;i%10&&printf("%dx%d=%d\n",i/10,i%10,i/10*(i%10)));}

記載現在C++の最小Codeは86Byteのようだ。
どのようなコードなのだろう。

便利な機能、Tool紹介

開発環境を整えるのであれば他でいくらでも情報が手に入るので
割愛する。
開発環境を整えた後で知っていると便利な機能を記載しておく。

  • pcsimでの音の出力

eclipse→ウィンドウ→設定→Android→起動
にて、デフォルトエミュレーターオプションが設定出来る。
ここに、「--useaudio」を入力しておきeclipseからpcsimを
起動させる。

  • layoutの作成

「DroidDraw」というツールを使用する事でAndroidのActivityを
作成する為の画面のレイアウトをとても簡単に作成する事が出来る。