スポンサーリンク
スポンサーリンク
Android SDKにはログを見るツールが用意されています。
[参考記事] ログ出力する方法
[参考記事] ログをEclipseのビューに表示させる方法
[参考記事] コマンドプロンプトの文字コードを変える方法
DDMS
コマンドプロンプト adb logcat
AndroidはLinuxベースなのでLinuxと同様にターミナルでのコマンド操作ができます。
処理を停止させるにはsleepを使用します。
sleepはThreadクラスの配下に次のように定義されています。
時間の単位はミリ秒です。
public static void sleep(long millis) throws InterruptedException続きを読む
JD-Eclipseは、Java 5以降に対応したEclipseプラグインのJava逆コンパイラです。
フランスのEmmanuel Dupuyによって開発されています。
JD-Eclipse公式サイト
Eclipseのプラグインとしてインストールすると、ソースコードが存在しなくても[パッケージ・エクスプローラ]や[デバッガ]からクラスファイルへアクセスするだけで自動的にクラスファイルを逆コンパイルできます。
逆コンパイルしていることを意識せず使用することができます。
同様の逆コンパイルをするEclipseプラグインに「JadClipse」がありましたが、「JadClipse」ではJava 5以降のバイトコード(クラスファイル)に対応していませんでした。
JadClipse Eclipseで逆コンパイルを行う
| TextView | ![]() |
wrap_contentは内容の大きさ(文字列長)にあわせて大きさが変化します。
続きを読む
layoutにはスタイルを使って、属性を別ファイルとして指定することができます。
スタイルを使用することで、一括で共通の属性の設定を行うことができます。
また属性値を一括で管理できるので、属性値を変更するときに1箇所で変更ができます。
[参考記事] テーマ機能を使ってアプリケーション全体にスタイルを適用させる方法
アプリケーション全体のスタイルを指定する機能にテーマというものがあります。
スタイル同様にテーマも属性値を一括で指定する方法ですが、違うのがスタイルが要素それぞれで指定するのに対して、テーマは全体に指定します。
[参考記事] スタイルを使って属性を一括で管理する方法
テーマ用のファイルはスタイル用のファイルと違いはありません。
テーマ用とスタイル用で共通でも可能です。

[参考記事] Androidのlayoutで使用できるパーツの一覧 ビュー(部品)
[参考記事] よく使うUIパーツのプロパティ
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CommonText">
<item name="android:layout_width">300px</item>
<item name="android:textColor">#00FF00</item>
<item name="android:background">#ff0000</item>
</style>
</resources>
テキストエディタで次のコードをHelloWorld.javaファイルとして保存します。
// HelloWorld.java
public class HelloWorld
{
public static void main( String[] args )
{
System.out.println( "Hello world!" );
}
}
『ファイル名を指定して実行』や『プログラムとファイルの検索』より『 cmd 』を入力してEnterを押すと、黒いコマンドプロンプトの画面が開きます。
続きを読むコマンドプロンプトから
C:\>java
を実行するとコマンドリストが出るけど
C:\>javac
を実行すると次のようなエラーが出る場合、環境変数PATHの設定が間違っています。
続きを読む
[参考記事] Javaをコマンドラインから実行する
[参考記事] javaコマンドは実行できるが、javacコマンドが実行できないとき
PHPではif文などの真偽を判定するときに、== や === を使用しますが、この==と===の違いは、値のみを見るか型まで見るかの違いです。
[参照記事] Javaでの==の意味
参照型変数にはデータそのものではなく、データの格納先(参照先)を示す値が入っています。
[参照記事] PHPでの==の意味
文字列の比較には通常、equalsメソッドを使うが、==による比較をおこなうと参照先が同じかどうかを判定する事ができます。
equalsメソッドの場合は、別々のメモリに同じ文字列が格納されていてもtrueになりますが、==ではfalseになります。
標準のyumリポジトリではGitのパッケージを含んでいません。
このためGitをyumでインストールするには、yumリポジトリを追加する必要があります。
[参考記事] Windows版TortoiseGit Gitクライアント
[参考記事] Windows から Git を使う方法
Androidのソースファイルは公式にGitで公開されています。
ダウンロードからビルドまでの手順もサイトに掲載されています。
Downloading the Source Tree
Gitで公開されているため、入手にはGitクライアントが必要です。
Gitをyumでインストールする方法
Windows版TortoiseGit Gitクライアント
Windows から Git を使う方法
Androidでマルチスレッド(マルチタスク・バックグラウンド処理)をするには次の方法があります。
[参考記事] UIを操作するのにhandlerを使う理由 thread WebViewCoreThread exiting due to uncaught exception
VideoViewはSurfaceViewを継承したwidgetクラスで、実体はopenVideo()メソッドでMediaPlayerを呼び出しています。
MediaPlayerの呼び出しの際に、Uri型でURIを渡しています。String型のファイルバスの場合はUri型に変換して送っています。
つまりこの2つの形式の指定しかできません。
サンプルコード
VideoViewの実体コード
動画を再生するにはMediaPlayerとVideoViewを使用する方法があります。
MediaPlayerのほうが詳細な指定ができ、VideoViewのほうが容易に使用できます。
[参考記事] MediaPlayer のメソッド一覧
[参考記事] 動画を再生する方法 VideoView
[参考記事] 2.0/2.1以前で再生できる動画が2.2以降で再生できない
[参考記事] アプリからネットワーク通信を行う場合
layoutやvaluesに使用されるxmlファイルは、XML形式で書きますが、このXMLの開始タグと閉じタグは大文字小文字も同じにする必要があります。
開始タグと閉じタグの対が同じでないと警告が発生します。
Android開発プラグインをEclipseに組み込んでいる場合、ddms(Dalvik Debug Monitor)を立ち上げなくてもビュー領域にファイルエクスプローラやLogCatを表示させることができます。
[参考記事] EclipseでAndroidプロジェクトを作る方法
[参考記事] ログ出力する方法 アプリのステータスを確認する
[参考記事] アプリケーションのログを見る方法
[参考記事] コマンドプロンプトの文字コードを変える方法
Eclipseのソースファイルは公式にCVSで公開されています。
またEclipseにはCVSクライアントが標準で組み込まれているので、Eclipseからダウンロードすることができます。
Javaには、標準でBase64のエンコード・デコード処理を行うメソッドはありません。
sun.misc.BASE64Encoderは、Javaのバージョンや Sun 以外の VM には存在しない可能性があるので、互換性を考慮すると使用しない方がよいとされています。
ビルド時にも警告が出ます。
警告:sun.misc.BASE64Decoder は Sun が所有する API であり、今後のリリースで削除される可能性があります。 警告:sun.misc.BASE64Encoder は Sun が所有する API であり、今後のリリースで削除される可能性があります。
sun.misc.BASE64Encoder sun.misc.BASE64Decoderの例
org.apache.commons.codec.binary.Base64の例
Base64.javaの例
その他
ブロック暗号とは共通鍵暗号の一種で、ブロックと呼ばれる固定長のデータ単位で暗号化を行います。
(ビット単位やバイト単位で暗号化をするものはストリーム暗号です。)
[参考記事] PHPで暗号化・複合化を行う ブロック暗号
[参考記事] Javaで暗号化・複合化を行う ブロック暗号
[参考記事] Perlで暗号化・複合化を行う ブロック暗号
[参考記事] Rubyで暗号化・複合化を行う ブロック暗号
平文データ(生データ)から暗号化されたデータを作成することを暗号化(encryption、encrypt)、暗号化されたデータから元の平文データに戻すことを復号(decryption、decrypt)といいます。
プログラム言語の暗号化ではencryptやdecryptなどの関数名・メソッド名になっていることが多いです。
もちろん元に戻せる(可逆変換)ことが前提で、md5やshaなどはハッシュ化といって不可逆変換です。
またデータから誰でも元に戻せてしまうと暗号化にはならないので、暗号化鍵がないと元に戻せないことも重要です。
base64などは鍵がなくても元に戻せるので、符号化と呼ばれます。
符号化の場合は平文データから符号化されたデータを作成することをエンコード(encode)、符号化されたデータから元の平文データに戻すことをデコード(decode)といいます。
ハッシュ化も符号化も広義には暗号化です。
暗号化方式(暗号化アルゴリズム)
パディング方式
暗号利用モード(ブロック処理の種類)
初期化ベクトル
暗号化前後の長さ(サイズ)
安全性
PHPでブロック暗号を行うにはMcrypt関数で可能です。
AESやDES、Blowfishなどが使用可能です。
[参考記事] ブロック暗号とは
[参考記事] Javaで暗号化・複合化を行う ブロック暗号
[参考記事] Perlで暗号化・複合化を行う ブロック暗号
[参考記事] Rubyで暗号化・複合化を行う ブロック暗号
PHPではCrypt_BlowfishというPEARもあります。
[参考記事] テキストを可逆的な暗号化する Crypt_Blowfish
サンプルコード
使用できる暗号利用モードの一覧
使用できる暗号アルゴリズムの一覧
Javaでブロック暗号を行うにはCipherクラスを使用します。
AESやDES、Blowfishなどが使用可能です。
AndroidではBlowfishが正しく使用できません。(2.2で確認)
[参考記事] ブロック暗号とは
[参考記事] PHPで暗号化・複合化を行う ブロック暗号
[参考記事] Perlで暗号化・複合化を行う ブロック暗号
[参考記事] Rubyで暗号化・複合化を行う ブロック暗号
サンプルコード
使用できる暗号アルゴリズムの一覧
使用できる暗号利用モードの一覧
指定できるパディング方式の一覧
鍵生成(KeyGenerator)で指定できる暗号化アルゴリズムの一覧