MIPS系CPU JZ4770登場


JZ4760に関する資料が無いかftp.ingenic.cnを漁っていると「4770」なんてディレクトリが・・・

Jz4770なんて新しいものがでてたんだ、と、「Jz4770」について探してみると、「ミップス・テクノロジーズとIngenic Semiconductor社、新しい1GHz超低消費電力MIPS-Based™モバイルSoCにAndroid™ “Honeycomb” を搭載するために協力」なんてMIPS社の2011/05/31付けのプレスリリースを発見。

Jz4770に対してはHoneycomb(Android 3.0)が載ることになるらしい。

ただ、CPU 1GHz動作で、OpenGL ES対応の3D GPUと、1060p対応のVideoProcessingUnit(VPU)が載ってるものが、これから登場っていうのは、ちょっと出遅れなんじゃ?と思わなくもないですが・・・
GPUのスペックにも「Alpha-osd up to 800×480」とあるので高解像度向けではないようです(高速化とかの機能が働かないですが1920×1080までとりあえずは対応しているようです)


ちなみに・・・
メインCPU用 Xburst 1core
VPU用 Xburst 1core
GPU用 ベース不明 1core
という数え方も、可能といえば可能なので、「Xburst 3 core 1GHz」なんて表記には気をつけろw
(実際、JZ4770 Mobile Application Processor Data Sheetに「CPU core」「VPU core」「GPU core」なんて記載があります)

JZ4760(MIPS)用nicoWnnG 独自ビルド版


(2013/06/21 追記 start)
最新版は「MIPS Android(JZ4760)用nicoWnnG version 2013.0425.1 独自ビルド版」にて配布中。

(追記 end)


———————————
OpenWnnもATOKも、どちらもAndroid NDKを使用して処理の高速化を図っています。
が、このNDKを使うとその配布パッケージはCPUアーキテクチャが限定される、という制約もかかります。

いまのところ主流のAndroid端末はARMアーキテクチャですが、ronzi A3はJZ4760というMIPSアーキテクチャのCPUを使用しています。
このため、OpenWnnもATOKも、ronzi A3では使用できない、という問題が発生します。

解決方法は、MIPSアーキテクチャ用のファイルも作成することです。

そんなわけで、単体でソースが公開されているnicoWnnGを使用しまして、MIPSに対応させた独自ビルド版nicoWnnGを作成しました。

apkファイル: nicoWnnG-mips.apk
・nicownng_2011_0503_1_src.zipをベースとしています

最新版はこちら
・MIPS用のバイナリを入れた以外はプログラム的な変更はありません。
・ronzi A3で使うと、レイアウトが結構おかしな感じで表示されますが、まだ、調整していません。
・apkに対する署名は配布元のものとは別になっています。今後、正規対応版が出たら、うちのをアンインストールしてから、正規対応版をインストールしてください。(じゃないとインストールに失敗します)

ちなみに、作り方のメモをおいておきます

Android NDK公式においてあるものはARMアーキテクチャ用のキットです。
MIPS用のものはMIPS社の開発ページから入手できます。

nicoWnnGのソースを展開して、jni/Application.mk内の「APP_ABI」行を「APP_ABI := mips」に変更します。
その後、mipsのAndroid NDKを使用してndk-buildを実行すると、libs/mips/ ディレクトリ内にMIPS用のバイナリが出力されます。
これを使用して、あとの手順は標準と同じように行っていきます。

ronzi A3 firmware update guide


ronzi A3(溶智 A3) ,firmware (ROM) update guide.
(2013/01/15 fixed download link)

(0) you got firmware and util(include USBBootTool.exe for separated firmware)
(1) ronzi A3 is booting “USB boot mode”

Press Home button and Power on.
Then, ronzi A3 into USB boot mode.
Warning: In this time, ronzi A3 screen is black. no-display.

(2) Connect to MS-Windows and install “Ingenic USB Boot Device Driver”.

ronzi A3 is displayed “JZ4760 USB Boot deivice”

(3) Disconnect ronzi A3
Warning: Don’t connect ronzi A3, before Step6.

(4) execute USBbootTool

(5) Select the update files.

Red square: “打井…” meaning “Select file…”
Greed square: “清除” , this value is ignore.

(6) USBboot mode ronzi A3 conneted to MS-Windows ,
USBboot Tools will be update start.

(7) Automaticaly update

While update progress, Block the interface.

(8) waiting….

If un-blocked, then update finished

(9) Power on and booting new firmware.
It takes about 120sec.

中国のebookフォーマット umd


ronzi A3にプレインストールされているiReaderではどういうフォーマットがサポートされているか調べてみた。

iReader公式にはちょっとバージョンが古いものに関しての情報はある。
それによると・・・
textと、HTML集合体であるCHM、そして中国製フォーマットUMDに対応しているとのこと。

じゃあ、UMDってのは、どうやって作るのか?
umd-builder
ebookPK
手机Umd文件格式浅析 (たぶん、書式についての解説)

なお、UMDは、どうやら、中国携帯で結構サポートしているらしいフォーマットの模様。
おそらくはxmdf的な感じの位置づけっぽい

ronzi A3 その5 CPUアーキテクチャの違いでIMEが動かない


マーケットで「ATOK」とか「OpenWnn」とかで検索しても、本体は出てこない。
build.propとか書き換えても出てこない。

じゃぁ、別途持ってきてと思って、OpenWnn plusをダウンロードしてきてインストールしてみが、「インストールされていません」とエラーになる。

logcatしてみる・・・

D/PackageParser(  104): Scanning package: /data/app/vmdl57440.tmp
I/dalvikvm-heap(  104): Grow heap (frag case) to 5.740MB for 27488-byte allocation
D/dalvikvm(  104): GC_FOR_MALLOC freed 9482 objects / 540680 bytes in 160ms
D/PackageManager(  104): Scanning package com.owplus.ime.openwnnplus
I/PackageManager(  104): /data/app/com.owplus.ime.openwnnplus-1.apk changed; unpacking
E/PackageManager(  104): Package com.owplus.ime.openwnnplus has mismatched uid: 10055 on disk, 10051 in settings
I/dalvikvm(  104): Total arena pages for JIT: 11
W/PackageManager(  104): Native ABI mismatch from package file
W/PackageManager(  104): Package couldn't be installed in /data/app/com.owplus.ime.openwnnplus-1.apk
D/dalvikvm(  104): GC_EXPLICIT freed 10748 objects / 480504 bytes in 187ms

「Native ABI mismatch from package file」
そう、CPUアーキテクチャが違うことにより、問題が生じているらしい。
ronzi A3は「ro.product.cpu.abi=mips」
一般的には「ro.product.cpu.abi=arm」系というわけで、NDKを使って開発されたアプリは動かないらしい・・・

NicoWnnGも同じエラー発生。
docomo端末から引っ張ってきたATOKも同じく

いやぁ・・・困った。
NDK問題を回避できるIMEはあるんだろうか??

— 追記 その1 —
とりあえず、単独でソース公開されていたnicoWnnGを使って簡易対応してみた。
しかし・・・画面レイアウトの問題が・・・

— 追記 その2 —
JZ4760(MIPS)用nicoWnnG 独自ビルド版を配布してます。