タグ別アーカイブ: 技術メモ

Linux上のEclipse+ADTでプロパティが編集できない問題の対処法


私は主にUbuntu環境でAndroidアプリを開発しています。

しかし、Linux(GNOME)版Eclipseにはバグがあるらしく、プロパティエディタで[…]というボタンがマウスクリックに反応しないために手書きでプロパティを記入する必要があります。画面数の多いアプリを開発する際には作業効率に大変な影響を及ぼすため、日々ストレスを感じていました。(この問題だけのためにWindows環境への移行を何度も検討しました)

本日この問題を解決する手順がわかったので、ここにメモしたいと思います。手順は醜いですが簡単です。

プロパティ編集画面

編集したいプロパティをクリックしてから、Tab→Spaceの順にキー操作するとダイアログがポップアップします。

ネタ元: Stack Overflow

AndroidアプリをProGuardで難読化する


Android Marketでアプリを公開するにあたって、逆コンパイルなどによるプログラムの解読を防ぎたい場合があります。その目的としては、ライセンス認証やセキュリティに関わる処理の内容を第三者に知られにくくしたいといった場合や、一部ジャンルのゲームなどのようにプログラムの解析によって著しくコンテンツの価値が下がってしまう場合の対応策として利用することなどが考えられます。

Androidアプリを難読化するためのツールとしてはProGuardが利用できます。これは最新のAndroid SDKには含まれていますので、現時点でアプリを公開している方は簡単に導入することができます。

ProGuardに関するAndroid Developers公式サイトのドキュメントはhttp://developer.android.com/guide/developing/tools/proguard.htmlです。

手順を要約すると以下のようになります。

ProGuardを有効にする

プロジェクトルートにProGuardの挙動を設定するためのproguard.cfgを作成します。最新のSDKで新規プロジェクトを作成すると自動的に作成されます。

デフォルトの proguard.cfg の内容:

そしてプロジェクトのルートディレクトリに、ant.propertiesを以下の内容で作成します。(以前はdefault.propertiesでしたがAndroid SDK r14から変更となりました)

準備ができたら、ant releaseまたは、eclipseによるエクスポートウィザードでリリースを行うと自動的に難読化が適用されます。デバッグビルドの場合は難読化は行われず、通常のビルドが行われます。

antビルドの場合はout.dirのディレクトリの下のproguard、そしてeclipseの場合はプロジェクトルート直下のproguardディレクトリに難読化処理の結果が保存されます。保存された内容は、アプリの強制終了などのときにユーザーからレポートされるスタックトレースの解析に利用しますので、リリースの都度保管しておく必要があります。