Xperia SO-01B をAndroid2.3.3にアプデした
使わなくなって1年経つ初代Xperiaを今更ながらAndroid2.3.3にアップデートしてカスタムROMいれて無事動かせたので手順をメモっときます。
環境/準備
- PC: Ubuntu 12.04
- Flashtool: v0.9.10.1
- Sony Ericsson純正2.3.3ROM: X10i_3.0.1.G.0.75_GLOBAL-GGL GENERIC 1232-9897.ftf
- カスタムROM: ThGo2_v18.0c
root化 & バックアップ
- PCにFlashtoolをFlashtool -- Xperia devices flashingのInstallationからダウンロードしてインストールする。FlashtoolはWindows/Linux/Mac向けがある。
- Xperiaの設定をUSBデバックモードに変更するため、「設定」→「アプリケーション」→「開発」→「USBデバッグ」にチェック入れる。
- Flashtoolを起動する。
- XperiaをUSBで接続する。
- Xperiaのrootを取得するため、Flashtoolの南京錠アイコンをクリックする。
- Xperiaを再起動する。
- xRecoveryをXperiaにインストールするため、Flashtoolの+アイコンをクリックして0.3GBを選択してOKをクリックする。
- xRecoveryを起動するため、Xperiaを再起動し、Sony Ericssonのロゴが出たらXperiaの←ボタンの長押しを何回も行う。
- xRecoveryが起動したら「Backup and Restore」→「Backup」を選択する。(音量ボタン:上下移動、HOMEボタン:決定)
Android 2.3.3にアップデート
- X10i_3.0.1.G.0.75_GLOBAL-GGL GENERIC 1232-9897.rarをxperia x10 | 所感 ~android~からダウンロードし解凍する。
- FlashToolのインストール先のfirmwares/ディレクトリにX10i_3.0.1.G.0.75_GLOBAL-GGL GENERIC 1232-9897.ftfをコピーする。
- FlashToolを起動し、稲妻アイコンをクリックをクリックしてFlashmodeを選択してOKをクリックする。
- X10iを選択してOKをクリックする。(このときXperiaはPCから外しておく)
- Xperiaの電源切って←ボタン押しながらPCにUSBで接続する。
- LEDが緑色に光ったら←ボタンを離す。
- FlashToolの書き込みが終わったら、Xperiaを再起動してAndroid 2.3.3で起動することを確認する。
- 上記root化 & バックアップの手順でroot取得、xRecoveryのインストール、Backupを行う。
カスタムROM:ThGo2v18.0cインストール
- 「ThGo2_v18.0c.zip」をフォルダを漁ってたら出てきたので… | 所感 ~android~からダウンロードする。
- XperiaのMicroSDカードに「ThGo2_v18.0c.zip」をコピーする。
- xRecoveryを起動し、「Factory reset(full wipe)」、「Wipe cache partition」、「Advanced optinos」→「Wipe Dalvik Cache」と「Wipe Battery Stats」を行う。
- ThGo2_v18.0cをインストールするため、「Install Custom ZIP」→「Choose Custom Zip」でコピーした「ThGo2 v18.0c.zip」を選択する。
- 再起動するため「Reboot phone」を選択する。
以上で完了です。
ドコモ版Andorid2.1は遅くてイライラしてたけど、カスタムROMでサクサク動くようになったしUIがAndroid4.0ぽくなっていい感じになった。
これなら買い替えなくてもよかったかもと思える。
以下参考にさせていただきました。感謝です。
サイゴンのうさぎ: XPERIA X10にThGo2 v18.0bを入れてみた。
サイゴンのうさぎ: XPERIA X10 ThGo2 v18.0cを入れてみた。
Xperiaのroot取得からxRecovery導入までをすべてFlashToolで行う手順┃あんどろいどマニア
Linux備忘録&ちょっと休憩しましょ:Xperia SO-01B カスタムROMに入れ替えてみた - livedoor Blog(ブログ)
xperia x10 | 所感 ~android~
Ubuntu12.10にVirtualBoxインストール
Ubuntu上でWindowsを動かすためにVirtualBoxをインストールしたのでメモしときます。
手順は簡単でターミナルで以下のコマンド打てばインストールできました。
$echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
$wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
$sudo apt-get update
$sudo apt-get install virtualbox-4.2
以下のサイトを参考にしました!ありがとうございます!
Install VirtualBox in Ubuntu 12.10 | ITworld
Javaのチェック例外に対して勘違いしてた
Java7の新機能についてまとめてくれたブログを読んだのだけど、次の疑問があったので調べてみた。
チェック例外をキャッチして再送する場合はthrowsに書かなくてもよいとは知らんかった。どうしてだ?? / “JDK 7の新機能(主に言語仕様の変更)で遊ぶ - Starlight -Little Programmer’s Diary-” htn.to/bBEoYw
— 電波蟻さん (@radio_ant) 8月 30, 2012
調べてみて気づいたのだけど、チェック例外について勝手に勘違いして一人で混乱してた。
チェック例外はバイトコードレベルで特別な何かをされるため、メソッド内でスローする例外の型がthrows節に記述する型と同一かサブクラスでなければならないと思い込んでた。
よく考えればわかることだけどバイトコードレベルで特殊なことしてたらScalaなどのJVMを対象とする他言語でチェック例外を非チェック例外として扱うことができないよね。。。
ClojureでJavaプログラミング
ClojureでJavaを呼び出すための方法を学んだので書き散らす。
クラスのインスタンス化
(new Classname args*)
Classnameにクラス名指定して、args*にコンストラクタに渡す引数をスペース区切りで指定する。
構文糖衣として次の形式があるのでそっちを使うのが一般的らしい。
(Classname. args*)
実際にはこんな感じで使う。
(StringBuilder. "hoge" ) -> #<StringBuilder hoge>
インスタンスのメソッド呼び出し
(.instanceMember instance args*)
instanceMemberにメソッド名、instanceにインスタンスを指す変数、args*にメソッドに渡す引数を指定する。
(.toUpperCase "fred") -> "FRED"
Classのオブジェクトのメソッド呼び出し
(.instanceMember Classname args*)
インスタンスのメソッド呼び出しと同じで、instanceMemberにClassが持つメソッド指定して、Classnameに対象とするクラス名を指定する。
(.getName String) -> "java.lang.String"
クラスメソッドの呼び出し
(Classname/staticMethod args*)
オブジェクトのメソッド呼び出しと異なり、"."は使わず"クラス名" + "/" + "メソッド名"になる。
(System/getProperty "java.vm.version") -> "1.6.0_07-b06-57"
また、引数が不要な場合はカッコでくくる必要がなく次のようにかける。
Math/PI
-> 3.141592653589793
Ubuntu 12.04にOracle Java 7を簡単にインストールした。
Ubuntu 12.04をクリーンインストールした。
んで、Oracle Javaのインストールで以前に書いたUbuntuにOracle Java JDK 7をインストールした。 - ブログ::=(メモ|落書き)帳より、もっと簡単な方法があったのでメモしとく。
インストール手順は次の3つを行うだけ。
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer
インストールできたか確認する。
$ java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) Server VM (build 23.0-b21, mixed mode)
$ javac -version
javac 1.7.0_04
ちゃんと最新のJDKがインストールされました。
この方法はこちらのブログで知りました、感謝!
http://d.hatena.ne.jp/Kazuhira/20120429/1335684623
以上。
コマンドラインでのキー操作が覚えられない。
bashのコマンドラインで使えるキーコマンドの一覧を整理する。
なかなか覚えられないのでコンソールでは使うことを意識したい。
移動系
キー | 説明 |
---|---|
Ctrl + A | カーソルを行の先頭へ移動 |
Ctrl + E | カーソルを行末へ移動 |
Ctrl + B | カーソルを一文字左に移動 |
Ctrl + F | カーソルを一文字右に移動 |
Alt + F, Esc F | カーソルを1単語右に移動 |
Alt + B, Esc A | カーソルを1単語左に移動 |
削除系
キー | 説明 |
---|---|
Ctrl + D | カーソル一の文字を削除 |
Ctrl + K | カーソル位置から行の終わりまでを削除 |
Ctrl + U | 行頭からカーソル位置の直前までを削除 |
Ctrl + W, Esc BS | カーソル位置から単語の先頭までを削除 |
Alt + D, Esc D | カーソル位置から単語の終わりまでを削除 |
その他
キー | 説明 |
---|---|
Ctrl + Y | 直前で削除系コマンドで削除した文字列を貼り付け |
Ctrl + P | ヒストリを一つ戻る |
CTRL + N | ヒストリを一つ進む |
Tab | コマンド補完 |
CTRL + L | ターミナルをクリア |
Eclipseのコード補完でコーディングを楽にしよう。
Eclipseにはコーディングを楽にするためにコンテンツアシストという機能があります。
コンテンツアシストは、Javaエディタ上で「Ctrl+Space」を押すことで使用でき、クラス名のメソッド名など、何かと補完してくださるありがたい機能です。
また、コーディングパターンをJavaエディタのテンプレートとして登録しておくことで、そのテンプレートからソースコードの補完もできます。
このテンプレートをうまく使いこなすために、デフォルトで組み込まれているJavaコードのテンプレートを調べてみました。
なお、テンプレートは新たに追加登録することが可能です。
設定
Javaエディタのテンプレートは以下の場所で編集、追加、削除ができます。
「Window」→「Preferences」
「Preferences」 → 「Java」 → 「Editor」 → 「Templates」
コンテキスト
Javaエディタのテンプレートは以下のコンテキストを持ち、テンプレートが有効になる範囲を定義します。
使い方
テンプレートの使用はテンプレートの名前を入力してコンテンツアシスト(「Ctrl+Space」)を行うとテンプレートの候補される。
以下の図のように右のポップアップには補完時のコードが表示される。
Enterを押すと表示されていた内容が補完される。
テンプレート
以下にコンテキストごとに、デフォルトで含まれているテンプレートの名前と説明を列挙します。
Javadoc
名前 | 説明 |
---|---|
@author | author name |
<b> | <b></b> |
<code> | <code></code> |
<i> | <i></i> |
<pre> | <pre></pre> |
active_task | active task |
false | <code>false</code> |
null | <code>null</code> |
true | <code>true</code> |
Java
名前 | 説明 |
---|---|
catch | catch block |
fall-through | $FALL-THROUGH$ marker |
nls | non-externalized string marker |
runnable | runnable |
toarray | convert collection to array |
Java type members
名前 | 説明 |
---|---|
main | main method |
private_method | private method |
private_static_method | private static method |
protected_method | protected method |
public_method | public method |
static_final | static final field |
test | test method |
Test | test method (JUnit 4) |
Java statements
名前 | 説明 |
---|---|
arrayadd | add an element to an array |
arraymerge | merge two arrays into one |
cast | dynamic cast |
do | do while statement |
else | else block |
elseif | else if block |
for | iterate over array |
for | iterate over array with temporary variable |
for | iterate over collection |
foreach | iterate over an array or Iterable |
if | if statement |
ifelse | if else statement |
instanceof | dynamic type test and cast |
lazy | lazy creation |
new | create new object |
switch | switch case statement |
synchronized | synchronized block |
syserr | print to standard error |
sysout | print to standard out |
systrace | print current method to standard out |
try | try catch block |
while | iterate with enumeration |
while | iterate with iterator |
while | while loop with condition |
SWT statements
名前 | 説明 |
---|---|
addlistener | add a listener to a Widget |
Browser | new Browser |
Button | new Button |
Combo | new Combo |
Composite | new Composite with GridLayout |
DateTime | new DateTime |
execute | execute a runnable in the UI thread |
ExpandBar | new ExpandBar |
ExpandItem | new ExpandItem for an ExpandBar |
GridData | new GridData for a Control |
GridLayout | new GridLayout for a Composites |
Group | new Group with GridLayout |
Image | new Image |
Label | new Label |
Link | new Link |
List | new List |
mainloop | new top level Shell with event loop |
SashForm | new SashForm |
Scale | new Scale |
ScrolledComposite | new ScrolledComposite |
Shell | new Shell |
Spinner | new Spinner |
StyledText | new StyledText |
StyleRange | new StyleRange for a StyledText |
TabFolder | new TabFolder |
TabItem | new TabItem for a TabFolder |
Table | new Table |
TableColumn | new TableColumn for a Table |
TableItem | new TableItem for a Table |
Text | new Text |
ToolBar | new ToolBar |
ToolItem | new ToolItem for a ToolBar |
Tree | new Tree |
TreeColumn | new TreeColumn for a Tree |
TreeItem | new TreeItem for a Tree |