2013年1月31日 星期四

為 X86 版本的 Android 4.2 添加中文輸入法

X86 版本的 Android 4.2.1 (Jelly Bean) 裡預設只打包了「谷歌拼音輸入法」,但筆者最熟悉的是「倉頡輸入法」,所以翻看了一下,決定將 LIME IME 放進去。

首先,瀏覽 http://code.google.com/p/limeime/ 並下載 LIMEHD_391_334.apk 這個檔案,這是 LIME IME 最新版本的 APK 檔。

然後,將 LIMEHD_391_334.apk 這個檔案放到 ANDROID-X86 原始程式碼的 device/generic/x86/app/ 目錄裡。

依據 device/generic/x86/app/README 的說明,放在這裡的 APK 檔將在編譯時自動被添加進去。

#
# Put your apks here. The Android-x86 build system will add them automatically.
#

最後,重新編譯出 android_x86.iso,執行後就可以發現多了「LIME-HD」這個輸入法了。

下圖是示範使用 LIME-HD 輸入中文的畫面。

2013年1月26日 星期六

在 Oracle VM VirtualBox 玩 Android 4.2 的幾點筆記

這回用 Oracle VM VirtualBox 玩 Android 4.2,大致整理了一下在 VirtualBox 裡對虛擬機器的設定。

首先,在 "試玩 X86 版本的 Android 4.2.1 (Jelly Bean)" 這篇文章裡,我提到了要「停用滑鼠整合」。也可以換成方式,在「系統」裡將「啟動絕對指標裝置」取消勾選,這個取消模擬 USB HID 的支援。如此,在「USB」裡也可以將「啟用 USB 控制器」取消勾選了。

在「顯示」裡,要記得勾選「啟用 3D 加速」。

在「音效」裡,要將音效控制器改成「SoundBlaster 16」。

在「網路」裡,將介面卡類型選擇「PCnet-FAST III (Am79C973)」。

其中,音效控制器和網路介面卡的設定應該可以不管,基本上我是依之前試玩 Android 4.0 時的習慣設定。目前 android_x86 目的在建立 universal image,有興趣的朋友也可以試試其它的控制器設定。

延伸閱讀:

將 X86 版本的 Android 4.2 安裝到硬碟上

在 "試玩 X86 版本的 Android 4.2.1 (Jelly Bean)" 這篇文章裡,是直接從光碟啟動 Android 4.2。

這篇文章裡,我打算記錄將 Android 4.2 安裝到硬碟的過程。

在啟動後,選擇「Installation」:

接著,選擇「Create/Modify partitions」:

此時,會進入 cfdisk 的畫面,我將硬碟分割成兩個磁區,並將其中一個指定為 swap。這只是一個習慣,只要是安裝基於 Linux Kernel 的系統時,我習慣會保留約 1GB 的空間指定為 swap,即使它不見得有作用。

接著,將 Android-X86 安裝到 sda1 這個磁區,並將該磁區格式化成 ext3:

接著,選擇安裝 GRUB:

將 /system 這個路徑指定為 read-write。印象中,之前接觸過一些 ARM 開發板上的 Android 移植, /system 這個路徑是被掛載成唯讀的,不過若將它指定成可讀寫時,在測試及 debug 時也相對方便些。

安裝完成後,可以將虛擬機器關閉,然後在設定裡將 ISO 檔從光碟機中移除,接著就可以直接由硬碟啟動 Android-X86 了。

試玩 X86 版本的 Android 4.2.1 (Jelly Bean)

幾天前在 Android-x86 的 Google Group 上看到 "jb-x86 source is ready" 這篇文章。

Hi,
I've pushed all jb-x86 branches to our main git server.
As usual, you can get it by

repo init -u http://git.android-x86.org/manifest -b jb-x86
repo sync

You will note there is only one target, android_x86.
This is the first step of the plan to create a universal image.
Though it's still far from complete.
I'll describe more details later.

SourceForge mirror is not synced yet.
Will try to do it when I have time.

-- 
Chih-Wei
Android-x86 project
http://www.android-x86.org 

依文章的說明下載了 Android 4.2 (Jelly Bean) 的 X86 版本:

$ repo init -u http://git.android-x86.org/manifest -b jb-x86
$ repo sync

然後,再依以下指令編譯得到 android_x86.iso 這個檔案。

$ . build/envsetup.sh
$ lunch android_x86-eng
$ time make -j2 iso_img

其中,在執行 lunch android_x86-eng 指令時,也可以選擇使用 android_x86-user 或 android_x86-userdebug。

以下是執行 make 指令後的訊息:

PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.2.1
TARGET_PRODUCT=android_x86
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=x86
TARGET_ARCH_VARIANT=x86
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-2.6.32-5-amd64-x86_64-with-debian-6.0.6
HOST_BUILD_TYPE=release
BUILD_ID=JOP40D
OUT_DIR=out

Android 從 4.0 以後,編譯都挺花時間的,我的 Thinkpad X61 使用 Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz 及 4GB 記憶體,第一次編譯大概要半個工作天左右。

這次我改用 Oracle VM VirtualBox 來玩 X86 版本的 Android 4.2。

首先在 VirtualBox 建立一個「Other Linux」的虛擬機器:

在「顯示」這欄裡將「啟用 3D 加速」勾選起來:

在「存放裝置」這欄,將 android_x86.iso 掛載到光碟機上:

在「音效」裡,將音效控制器改成「SoundBlaster 16」:

在「網路」裡,先使用 NAT 模式,至於介面卡類型則選擇了「PCnet-FAST III (Am79C973)」:

接著就可以啟動虛擬機器了:

最後,在 VirtualBox 裡要記得「停用滑鼠整合」:

參考文章: