◇ libandroid loader (java version)
2012/01/20 Hiroaki GOTO as GORRY.
========================================================================

ICONIA TAB A500で「-landroid」を付加して作成したNative Activityが
起動できない現象に対策するためのローダ。

========================================================================
■ 現象
========================================================================

ICONIA TAB A500(2.6.36.3+, Acer_A500_7.009.03_AAP_CUS6JP)では、
NDK作成時に /system/lib/libandroid.so をリンクするために
「-landroid」すると、LD_LIBRARY_PATHで先に検索される
/vendor/lib/libandroid.so を読んでしまう。
このため、リンクするべき関数がリンクされず、エラーとなる。

========================================================================
■ 対策
========================================================================

正しい libandroid.so をロードするために、NDKライブラリを
読み込む前にSystem.load()で /system/lib/libandroid.so を
明示的に読み込む。
続いて「本来起動するべきNative Activity用ライブラリ」を
読み込むようにすることで、正しく起動するようになる。

詳細は、JNILib.java内JNILib()を参照。

========================================================================
■ ビルド方法
========================================================================

・t01_ng
  1. 「t01_ng/mkc.sh」で、NDKのクリーニングを行う。
  2. 「t01_ng/mkd.sh」で、NDKのデバッグビルドを行う。
  3. eclipseでビルド・実行。
  4. ICONIA TAB A500では「UnsatisfiedLinkError」例外で実行できない。

・t02_ok
  1. 「t02_ok/mkc.sh」で、NDKのクリーニングを行う。
  2. 「t02_ok/mkd.sh」で、NDKのデバッグビルドを行う。
  3. eclipseでビルド・実行。
  4. ICONIA TAB A500でも実行可能。

========================================================================
■ ライセンス
========================================================================

同梱ファイルのライセンスについては、APACHE-LICENSE-2.0.txtを
ご覧ください。

========================================================================

[EOF]
