2013年4月29日月曜日

Nexus 7 root化したらパズル&ドラゴンズが動かなくなってしまった。


Nexus 7にパズドラ(パズル&ドラゴンズ)入れて遊んで見たんですが、その後root化したらパズドラが動かなくなってしまった。

どうも、
/system/app/Superuser.apk
/system/xbin/su
この2つがあるとだめなようで、/system/app/Superuser.apkは、
/data/app/Superuser.apkに移動して、/system/xbin/suはとりあえず、suuにrenameして、
動作するようになった。

*書き換えメモ:/system フォルダを書き込み可能にする
$ adb shell 
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system


2013年4月24日水曜日

AndroidでICカード NFCタグを読み込み


会社で、開発用にNexus7を買ったのは実は、NFCタグを読み込みたかったのです。
(他の理由もありますが。)

http://www.atmarkit.co.jp/ait/articles/1211/27/news072.html

からサンプルコードを頂き、コンパイル&GOとしてみたところ、
[2013-04-24 00:46:27 - NfcDiscover] No Launcher activity found!
[2013-04-24 00:46:27 - NfcDiscover] The launch will only sync the application package on the device!
え?どういうこと?しばし悩むこと小一時間。
通常は、
<intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
ですが、これがなくてactivityが見つからないし、アイコンも登録されない。ただし設定-アプリのリスト中には存在している。

The launch will only sync the application package on the device!
=> ランチャーは、デバイスの同期で起動って書いてある。英文を読めば良かったのですね。
もう、一行目のNo Launcher で全て読み飛ばしてた!
そういうことです。これで問題なかったのです。

ということで、ICOCAカードをNexus7の背面上部に合わせると反応しました。


手持ちのICカードを調べてみると。
  1. ICOCA                       NfcF
  2. 京都ぷらすOSAKA PiTaPa NfcF
  3. JAL MILEAGE BANK        NfcF
  4. 運転免許証                 IsoDep/NfcB


となっていました。運転免許証 は3月に更新したばかりでICカードになってました。^^


Android Nexus7 で CrenaCam起動しない。


会社で、開発用にNexus7を入手したのでまず、CrenaCamを入れようとしたけど、Google Playで検索してもCrenaCam検索しても出てこないし、直接、URLで野良アプリ風でダウンロードしても、Androidで「お使いの端末はこのバージョンに対応していません。」のメッセージ。


デバッグしてみたところ、
Camera.open();
で落ちる。
http://stackoverflow.com/questions/16039670/android-camera-preview-code-not-working-with-nexus7-surfaceview-error
を見ると。

1)The problem is that Camera.open() will return null if there is no rear camera:
とのことで、フロントカメラは、Camera.open(0);にしろと記載があった。
で、Android 2.1だと、このパラメータは使えません。
Android 2.3.3だと、Camera.open(0);が使えた。

2)オートフォーカス設定で、
camera.setParametersを使ってセットしていますが、ここでも落ちる。
try{}chatch{}で逃げる。

以上でとりあえず、CrenaCamが起動しました。
ん~。Google本家のハードなのにいろいろと面倒です。


2013年4月22日月曜日

oracle プロシージャーのインポートに6時間がかかる


【メモ】

本番システムのoracleデータベースをexportしたものをimportしたのですが、プロシージャー以外はすんなりimportできましたが、プロシージャー(150本)は、6時間ぐらいかかってしまった。
(週末にimportを動かしたまま放置して、今朝みたら全部正常にimportできていた。)

プロシージャーがなぜこんなにも時間がかかったかみたところ、各プロシージャーの作成時間を調べてみると、大体30分区切りで一群のプロシージャができている模様。
どれがネックになっているか見てみるとどれも、データベースリンクを使用しているプロシージャーでした。

本番は、データベースリンク使っているのですが、今回開発しているところは、データベースリンクはいらないので、当然ありません。
データベースリンクが引けないので、多分タイムアウトするまで待っているものと思われます。

インポート時だけタイムアウトを短く設定できるか、精査不要のオプションがあればいいのに。。。

==== 追記 ====

インポートのCOMPILEオプションはデフォルト"Y"みたいですので、これを"N"でやれば
早かったかも。

imp system/xxxxxx file=abc.dmp fromuser=user1 touser=user2 ignore=y compile=n

2013年4月4日木曜日

Android 開発環境で IntelliJ にしてみた。


2年前 CrenaCam 0.9.2.5を作った時、Eclipseを使ってて、今回EclipseをバージョンアップしてAndroid 開発環境を最新にしようとしましたが、なんかユーザインターフェースがすごく変わってしまって、以前のProjectもimportしなくてはならず、なんとなくうまくProjectが操作できない。

そこで、 IntelliJというものがあり、こちらで紹介されていたので早速インストールしました。
http://www.devlog.alt-area.org/?p=1591

Import Projectで、以前作ったCrenaCamera-Release-0.9.2.5-flashをインポートして、RUNで動作しました。

署名付きAPKのエクスポートで、コマンドラインで作った以前のキーファイルを使えるか?
使えないと、Google Playに登録しているので違うアプリとして認識されてしまい困ったことになります。

Build->Generate Signed APKで作成します。以前作ったキーファイルを指定して
Key store password,Key alias,Key passwordの3つを入力してCameraCam.apkを作成します。
*↑の3つを忘れていたら同じデジタル署名は作成できません。


正式版のCrenaCamがインストールされた状態で、

C:\Android\android-sdk\tools>adb install -r C:\work\android\CrenaCamera-Release-0.9.2.5-flash\CameraCam.apk
1033 KB/s (134450 bytes in 0.127s)
        pkg: /data/local/tmp/CameraCam.apk
Success

で、デジタル署名は前と同じ(当然か・・)でUPDATEできたのでこれからはIntelliJを使うことにします。


*ちなみに、Build->Generate Signed APKで新たに署名を作ってインストールすると、
C:\Android\android-sdk\tools>adb install -r C:\work\android\CrenaCamera-Release-0.9.2.5-flash\CameraCam.apk
518 KB/s (134834 bytes in 0.254s)
        pkg: /data/local/tmp/CameraCam.apk
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
のようなことになり失敗します。(この場合は元のアプリを削除すればインストールできます。)