apk パッケージの AndroidManifest.xml を解析するには

.apk ファイルに含まれる AndroidManifest.xml はバイナリ形式になっているため、そのままでは設定を読むことが出来ません。
 
元のXMLに戻すのではなく、XMLの情報を読みたいだけであれば、Android SDKに付属している aapt (Android Asset Packaging Tool)というツールを使うことで可能です。
 

aapt l -a <apkファイル>

aaptプログラムはapk作成のためのツールです。
それぞれのバージョン毎に独立した実行ファイルになっていて、platforms 以下それぞれのSDKバージョンのフォルダ以下に存在しています。
(追記)以前は platforms以下に分かれて配置されていましたが、現在は platform-tools フォルダに統合されました。

android-sdk/platform-tools/aapt

実行すると以下のようなダンプが出力されます。
AndroidManifest.xml について書かれているのは “Android Manifest:”以下ですね。

res/drawable/icon.png
res/layout/items.xml
res/layout/main.xml
AndroidManifest.xml
resources.arsc
classes.dex
META-INF/MANIFEST.MF
META-INF/CERT.SF
META-INF/CERT.RSA
 
Resource table:
Package Groups (1)
Package Group 0 id=127 packageCount=1 name=com.example.foo
~中略~
Android manifest:
N: android=http://schemas.android.com/apk/res/android
  E: manifest (line=2)
    A: android:versionCode(0x0101021b)=(type 0x10)0x3
    A: android:versionName(0x0101021c)=”1.2″ (Raw: “1.2”)
    A: package=”com.example.foo” (Raw: “com.example.foo”)
    E: application (line=6)
      A: android:label(0x01010001)=@0x7f040000
      A: android:icon(0x01010002)=@0x7f020000
      E: activity (line=7)
        A: android:label(0x01010001)=@0x7f040000
        A: android:name(0x01010003)=”.Foo” (Raw: “.Foo”)
        E: intent-filter (line=9)
          E: action (line=10)
            A: android:name(0x01010003)=”android.intent.action.MAIN” (Raw: “android.intent.action.MAIN”)
          E: category (line=11)
            A: android:name(0x01010003)=”android.intent.category.LAUNCHER” (Raw: “android.intent.category.LAUNCHER”)
    E: uses-sdk (line=16)
      A: android:minSdkVersion(0x0101020c)=(type 0x10)0x3

インテントごとの実行権限など一通りの設定を参照することが出来ます。
その他にもリソースID情報などもapkに関係する様々な情報を得られます。
 
参考:
How to parse the AndroidManifest.xml file inside an .apk package(stackoverflow)
エンコードされたAndroidManifest.xmlをデコードする

Google Maps – スター付きアイテムの名前を編集するには

Googleマップにログインし、スターをつけると表示中の住所や建物名で保存され、地図上から変更する事は現在できません。ですが実体はGoogleブックマークなので、ブックマークの変更と同じ手順で編集することができます。
 
– スター機能について・・・
Google マップでのスター機能を使うと、地図上の任意の場所に星マークをつけて記録することができます。他の人から見られることはないので、お気に入りの店や待ち合わせ場所などの記録に便利です。車の駐車場所を忘れないために使っている方もいるようですね。

PostgreSQL で to_dec

to_hex() の逆関数は標準では提供されていません。
PL/pgSQL が使える環境であれば「Conversion between hex and dec numbers(16進数と10進数の変換)」(SQL Tricks)のページで定義している to_dec() 関数を使うのが便利です。

=# select to_hex(11);
    to_hex
   ——–
    b
   (1 row)
postgres=# create or replace function to_dec(text)
           returns integer as $$
           declare r int;
           begin
             execute E’select ”||$1|| E’\’::integer’ into r;
             return r;
           end
           $$ language plpgsql;
CREATE FUNCTION
postgres=# select to_dec(‘ff’);
 to_dec


—-
    255
(1 row)

 
別の方法として、16進数を1度ビット型に変換することでも10進数に変換できます(桁数が分かっている場合のみ)。
たとえば、2桁の16進数文字列 の hextext というカラムを10進数に変換した居場合は次のようになります。

SELECT (‘x’ || hextext)::bit(8)::integer — bit(桁数の4倍)

CSS の float を解除する 3つの方法

http://whisper.sakura.ne.jp/diary/2009/06/cssfloat.html
すぐ忘れるのでメモ。
空タグを使わない方法については float する対象をコンテナで囲むのは共通。
コンテナに対して clearfix (:afterに見えない要素を置いてそこでclearする)を使うか、
overflow:hidden をかけるかの2パターン。
 
参考:
floatのclearについて
図解で分かりやすいです。
clearは「floatの解除」ではない

Internet Explorer – PNG が表示されなくなった

IE8 を使っていて、Google トップページなどでPNG画像が表示されなくなってしまった。
原因を探っていて、そういえば QuickTime をアンインストールしたなと思い出し、ここからレジストリ設定ファイルを落としてきて修復したら直りました。

HTC Desire で急に通知バイブが鳴動しなくなる問題の対策

HTC Desire, Droid Incredible などで gmail の通知などでバイブが鳴らなくなる不具合があるようです。
調べてみたところSound Managerというアプリでバイブレーション設定することで解決するとのこと。
バイブが鳴るようになったら Sound Manager はアンインストールしてもOKです。
 
ダウンロード用QRコード(クリックでAndroid Merketへジャンプします)
画像
参考:
No notification vibration(Android Forum)

Eclipseでプラグイン更新後エラーで起動しなくなった時の対処方法

MESSAGE バンドル org.eclipse.equinox.app (913) を自動的に有効化している間にエラーが発生しました。

と出て、Eclipse が起動しなくなった。
Eclipse ディレクトリの

eclipse.exe -clean.cmd

を実行して解決しました。
ない場合はコマンドラインから

eclipse -clean

でOKです。

ADT – うまく動作しない時の対処方法

ADT(Android Development Tools) 0.6 を Eclipse 3.5(Galileo), Java 6.0 の環境でインストールしたものの色々不安定です。

Conversion to Dalvik format failed with error 1

というエラーが出て、プロジェクト→クリーンすればいいよという情報があったのでやってみたけど解決に至らず、試行錯誤の結果次の手順でプロジェクト設定を修正したところエラーが消えました。
 
1.パッケージプロパティーでプロジェクトを右クリック
2.Androidツール→プロジェクトプロパティを修正を選択 (Android Tools > Fix Project Properties)
3.最後にプロジェクト→クリーン
 
gen フォルダがおかしい時や、Android のライブラリの欠落もこれで修正されます。
 
参考:
Android Eclipse Classpath – want to add classpath container path but eclipse won’t let me.