Skip to content

Androidのソースコードを改造してオレドロイドを作ってみよう!


こんにちは。UEI/ARCの近藤誠です。

みなさん、Android携帯は使っていますか?
僕は毎日使ってます。

毎日使うマシンだから、その中のOSがどうなっているか気になりますよね?ね?
実はAndroidのソースコードは、オープンソースなので誰でもダウンロードして見ることが出来ます。見るだけでなく、改造してコンパイルして、自分のAndroidケータイを鬼のようにカスタマイズすることができるんです。

ところがこのソースコード、なんと10GB以上あります。

それはもう広大なひとつの宇宙です。
そこで今回はAndroidソースコードの見所というか、さわりだけご紹介しましょう。

Androidソースコードは、18のフォルダに分けられて格納されています。
OSそのもののカーネルはkernelフォルダに。ブラウザーやメーラーなど標準で入ってくるアプリはpackages/appsフォルダの中にあります。

この中に入っているアプリは基本的にはAndroidアプリと変わりません。
ソース自体もJavaで書かれています。

だからAndroidアプリを開発できる人は、Androidのソースコードを直接いじって勝手に「自分OS」を作ることが出来るのです。

Androidのソースコードの大半はJavaで書かれていて、ときどきC++で書かれたハードウェア依存部分がある程度です。

APIが格納されているのは、frameworksディレクトリの下です。

例えばグラフィックスAPIのソースはどんなふうに書かれているのか見たければ、frameworks/graphicsを見ると、AndroidのAPIとして提供されているクラスのソースコードを全て読むことが出来ます。

例えば、グラフィックスといえばたいていお世話になるBitmapクラスのソースはこんな感じです。

驚くほどただのJavaで驚きます。
しかもソースはコメントがしっかりつけられてかなり整理されているので、想像していたより読みやすいです。

この部分を読むと解るのは、実はAndroid 4.0のUIは全てGPUを使って描画されているということです。このあたりのソースはガリガリのOpenGLを使って書かれています。滑らかなUIを実現するためにハードウェアを活用しているというのがソースコードレベルでハッキリわかりますね。

また、スクロール動作やフリック、上からびろーんと引き出してくるUIなど、システムのUIが書かれているのはpackages/SystemUI/src/com/android以下です。

スクリーンショットをとるためのAPIなんかもここで定義されていますし、スクロールの仕方そのものもここで定義されているので、ここを改造するとスクロールの仕方そのものを変えることもできます。

「ニャンドロイド」という裏技を知っていますか?
Androidの設定画面である操作をすると不思議なデモが流れるのですが、その「ニャンドロイド(nyandroid)」のソースコードもここに含まれています。

これを改造すればキミだけのニャンドロイドを作れるってことです。

statusbarのところもいろいろ見所一杯で、このあたりを改造すると簡単にAndroidっぽくないAndroidが作れてしまいます。

配布するのはけっこう難しいので、本当に自己満足かもしくはUEIみたいに仕事としてAndroidを扱わないと実用性はないのですが、Androidのソースコードは非常に良く出来ていて、コンパイルすると自動的にSDKを吐き出してくれたり、実行用イメージファイルを吐き出してくれたりと至れり尽くせりでオレドロイドを作る機能が満載されています。

まあやりすぎて文鎮になってしまうリスクはありますが、いらないWiFi専用タブレットなどを自分色にカスタマイズして遊んだりすると、友達に微妙な自慢ができてカッコいいかもしれません。

レッツenjoy!

このエントリーをはてなブックマークに追加
はてなブックマーク - Androidのソースコードを改造してオレドロイドを作ってみよう!
Post to Google Buzz
Share on GREE

No related posts.

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*