2007/03/04開始。ソフトウェア管理やDelerer SEの作者であるおにぎりくんの試行錯誤の記録です。
- [Vue.js]時計?タイムコードを表示するWebアプリ
- (2021/11/16)
- ポエム
- (2020/09/30)
- メトロノームアプリをリリース
- (2017/04/22)
- Sikulix勉強中:便利関数
- (2017/02/25)
- [JavaFX]学習メモ
- (2016/09/22)
http://kanatoko.wordpress.com/2011/01/21/androidアプリケーションのリバースエンジニアリング/
Androidアプリの逆アセンブルはこんなに簡単なのか!
商用アプリはどうやってロックをかけてるんだろう。
思いつく案:
・共有ライブラリ(.so)を本体とする
・アプリをSDカードにコピーできないようにする
・難読化を施す
共有ライブラリに持っていけば、あとはC言語であれこれ対策できそうな。ハッカーさんに掛かれば、どんなアプリも解読されてしまうのだけれども、ふつうの開発者には解読できないってレベルにするのが必要だと思う。
Androidアプリの逆アセンブルはこんなに簡単なのか!
商用アプリはどうやってロックをかけてるんだろう。
思いつく案:
・共有ライブラリ(.so)を本体とする
・アプリをSDカードにコピーできないようにする
・難読化を施す
共有ライブラリに持っていけば、あとはC言語であれこれ対策できそうな。ハッカーさんに掛かれば、どんなアプリも解読されてしまうのだけれども、ふつうの開発者には解読できないってレベルにするのが必要だと思う。
PR
いろいろな機種の写真解像度・プレビュー画像解像度を調査した人を発見。
以下の機種について記載されていました。
http://319ring.net/blog/android_camera_supportedpicturesizes
(2010/11/30の記事です)
以下の機種について記載されていました。
- Desire
- DesireHD
- HT-03A
- Xperia
- Galaxy S
- Galaxy Tab
- IS03
- Nexus One
- Nexus S
- HTC EVO4
- Motorola Milestone
http://319ring.net/blog/android_camera_supportedpicturesizes
(2010/11/30の記事です)
Fragmentの勉強をそろそろ始めたいなぁ、と思っていたところに!
イイモンメッケ!!
第3回名古屋android勉強会 Fragment基礎講座/ハンズオン を行ったよ。
http://y-anz-m.blogspot.com/2011/12/3android-fragment.html
そろそろFragment使えるようになりたいので、資料にそってプロジェクト作成まで実施。
あー時間が足りないです。
これは全部やるのに一ヶ月くらいかかりそうな予感。
がんばろう。
Androidでセキュリティってあんまりピンと来ない。
一般的には、「変なアプリを入れるな」ぐらいにしか言われていないけど、開発者としては何をすべきなんだろう。
こういうとこ読んで勉強。。。
http://codezine.jp/article/detail/6285
http://codezine.jp/article/detail/6286
指定された時間後に処理を行うには、Handler#sendMessageDelayedを利用できます。
Handler#sendMessageDelayed
http://developer.android.com/reference/android/os/Handler.html#sendMessageDelayed%28android.os.Message,%20long%29
時間はミリ秒で指定できます。
handler.sendMessageDelayed(handler.obtainMessage(what, arg1, arg2), timeout);
みたいな使い方ができるのかな。
リファレンスを見ると、タイムアウトや定期的処理(タイマー)などの時間ベースの処理を実装するのに使えるとあります。メッセージループを使うため精度は高くないかもしれませんが、ハンドラにはそれに変わるいいところがあります。
ハンドラのいいところは、ハンドラを生成したスレッド(メッセージキューを持っている必要あり)で処理が行われることです。Handler#handleMessage()をオーバーライドして処理を記述するなら、そこでの処理はハンドラを生成したスレッドで実施されます。別のスレッドを立ち上げたくない、メインスレッドで画面描画させたいときに活躍します。
たとえばスレッドの処理時間を制限するハンドラを作るとしたら・・・?
Handler#sendMessageDelayed
http://developer.android.com/reference/android/os/Handler.html#sendMessageDelayed%28android.os.Message,%20long%29
時間はミリ秒で指定できます。
handler.sendMessageDelayed(handler.obtainMessage(what, arg1, arg2), timeout);
みたいな使い方ができるのかな。
リファレンスを見ると、タイムアウトや定期的処理(タイマー)などの時間ベースの処理を実装するのに使えるとあります。メッセージループを使うため精度は高くないかもしれませんが、ハンドラにはそれに変わるいいところがあります。
ハンドラのいいところは、ハンドラを生成したスレッド(メッセージキューを持っている必要あり)で処理が行われることです。Handler#handleMessage()をオーバーライドして処理を記述するなら、そこでの処理はハンドラを生成したスレッドで実施されます。別のスレッドを立ち上げたくない、メインスレッドで画面描画させたいときに活躍します。
たとえばスレッドの処理時間を制限するハンドラを作るとしたら・・・?
/** 指定されたスレッドが2秒以上処理していたら、その場で死なすハンドラ */ public class ThreadLimitHandler extends Handler { /** タイムアウト時間(ミリ秒):値2秒 */ public static final int TIMEOUT = 2000; /** 監視対象のスレッド */ private Thread thread; /** コンストラクタ */ public ThreadLimitHandler(Thread th){ this.thread = th; } /** メッセージの処理 */ public void handleMessage(Message mes){ // スレッドが生きているか確認 if(thread!=null){ if(thread.isAlive()){ // 生きていれば、死なす。どんな手段を使ってでも。 thread.interupt(); } } } /** 2秒制約つきでスレッドを起動する */ public void startThread(){ if(thread!=null){ thread.start(); this.sendEmptyMessageDelayed(0, TIMEOUT); } } }#OS再インストールして開発環境未構築のため、動作確認してません。
スポンサード・リンク
フリーソフト指向::開発日記 by LapisCactus