『Debian/Linux』 Debian6.0でAndroid OS構築環境を構築する

Android Open Source Project(AOSP)で配布しているソースファイルをビルドするためのLinux環境、説明を見る限りUbuntuで環境構築するようにとなっているので、みんなUbuntuでやっていると思います。
個人的には、UbuntuのGUIはウンコだと思うので、使いなれたDebianでやりたいところです。
もっとも、ubuntuもGUIをGnomeとかにしたら良いのだと思いますが(´・ω・`) 

以下、Initializing a Build Environmentを参考にしつつ構築したので、差分を協調しつつメモ

32bitOS か 64bitOSか

マシンのアーキテクチャ選択ですが、特別な事情がない限り64bitOSにしましょう。
ただ、32bitOSだとビルドできないかというと、できます。
今後、どうなるかわかりませんが。

JDKインストール

ぶっちゃけると、JDKのインストールが違うだけであとはAOSPのページだけで行けます。
JDK6のインストールはOracleのページから持ってくる必要があります。
どのようにインストールするかは、
Debian系LinuxへOracle JDKをインストールする
を参考にインストール。

必要なパッケージのインストール

あとは、AOSPのページを参考にインストール

$ sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown
libxml2-utils xsltproc

VirtualBox用のイメージを作成するためには、VirtualBoxもインストールする必要あり。
VirtualBoxをインストールするためにはQtのライブラリも必要だけど、どれを入れるかはVirtualBoxをインストールしたらゴニョゴニョでてくるので、それからわかることは

$ apt-get install libqt4-network libqt4-opengl libqtcore4 libqtgui4 libaudio2 qt4-qtconfig libqt4-qt3support libqt4-designer libqt4-sql libqt4-xml libqt4-script libqt4-dbus

して必要なライブラリしたあと

$ dpkg -i virtualbox-4.2_4.2.6-82870~Debian~squeeze_amd64.deb

これで環境構築完了です。

ビルドなどは次回

ccacheを設定すると、2回目以降のビルドが早くなるとか書いてありますが、私の仮想環境だとDiskが少ないので省略

『Linux/Ubuntu』 JDK6をUbuntu 12.10(amd64)へのインストール

先ほどDebianにインストール出来たので同じ手順でUbuntuにもインストールしてみました。
が、JavaのVersionが変わりませんよ。Why?

Ubuntu、Debian系のくせに設定手順が違うらという落とし穴。
以下のページを参考にさせていただきました。
Installing Oracle Java JDK 6 or 7 on Ubuntu

英語のページですが、問題ないでしょう。

これによって、ようやくUbuntuでもAOSPビルド環境が整ったかな?

Ubuntu Linux 入門キット 12.04対応 (INTRODUCTION KIT SERIES)
水野 源
秀和システム
売り上げランキング: 180,241

『Linux/Debian』 JDK6のインストール

Android OSのビルドにはJDK6が必須です。
ただ、AOSPに書かれた説明は古い情報で、そのままではJDKをインストール出来ない。

いつもの通りにGoogle先生に質問をしたところ、答えが見つかりました。

Debian系LinuxへOracle JDKをインストールする

そのものですな(;^ω^)

ほぼ、自分の備忘録です(;^ω^)

明快入門Java (林晴比古実用マスターシリーズ)
林 晴比古
ソフトバンククリエイティブ
売り上げランキング: 260,172

『Debian/Linux関連』 LVMでDISK増設とパーティション拡張

最近、Debian環境をメインPCのVirtualBox上にインストールして色々とやっていました。
最近は、仮想環境でOSをお試しできたりするのが素晴らしいですね。

さて、元々はカーネルのインストールをトライするために環境構築したので、DISKは8GBもあれば足りるだろうと思ってはじめに作りました。
で、ふとAndroidOSをソースからビルドしたいと思い立って環境構築をはじめたら、途中でエラーが。。。。
DISKがあふれてた。そりゃ8GBじゃ足りないよなと反省。

VirtualBoxでの作業だったため、HDDはイメージのサイズを変更すればどうとでもなる。しかし、Debianマシン上でのパーティション拡張はどうすれば良いのか、しかもLVMにしてるし。

と言うことで調べてうまくDISK増設ができました。

具体的には、LVM上のファイルシステム(ext3)を拡張する@Debian LennyAdd Starを参考にしてそのまま実行することでできました。

本当にこのページの情報だけで行けたので、以上で終わりです(°□°;)

今後はNASのDISKもLVMにしようかなと一瞬考えましたが、SATAポートがすべて塞がった状態の構成でLVMにしちゃうとDISK増設できなくなり、そこで詰まるかなと思っている所。

『プログラミング C#』 ListViewに表示されている項目をエクスプローラにドラッグ&ドロップする

そのものズバリがGoogleで見つからなかったので、メモ。

ListViewに表示されている項目、具体的にはディレクトリをエクスプローラにドラッグ&ドロップしてディレクトリの移動を行いたいのです。

1個の項目をドラッグ&ドロップする

ItemDragイベントに実装すればOKです。

まず、ListViewに追加されているディレクトリ名を取得するには、
[csharp]
string path;
ListViewItem itemx = new ListViewItem();
itemx = listView1.SelectedItems[0];
path = itemx.SubItems[1].Text;
[/csharp]
となります。リストビューから取得されているディレクトリは2個目の項目に追加している情報を使っています。

つぎ、それをドラッグ&ドロップするには
[csharp]
string[] paths = {path}
DataObject dataObj = new DataObject(DataFormats.FileDrop, paths);
DragDropEffects effect = DragDropEffects.Move;
listView1.DoDragDrop(dataObj, effect)
[/csharp]
です。移動したいのでDragDropEffects はDragDropEffects.Moveだけを指定してますが、コピーもしたければorで指定していきます。

複数項目をドラッグ&ドロップする

じゃ、複数項目をドラッグ&ドロップするにはとなりますが、listView.SelectedItems.Countで選択している個数を取得できる事を利用して、
[csharp]
ListViewItem itemx = new ListViewItem();
int SelectedCount = listView1.SelectedItems.Count;
for (int i=0; i < SelectedCount; i++){ itemx = listView1.SelectedItems[i]; path = itemx.SubItems[1].Text; } [/csharp] で選択項目それぞれのディレクトリ名を取得できます。 DataObjectをnewするときには、string型の配列が必要なのですが、そこをどうすれば良いかというと、ArrayListを使ってやれば良いみたいです。
[csharp]
ArrayList pathList = new ArrayList();
pathList.Add(path);

string[] paths = (string[])pathList.ToArray(typeof(string));
[/csharp]
みたいな感じです。

全体をまとめると
[csharp]
ArrayList pathList = new ArrayList();
string path;

ListViewItem itemx = new ListViewItem();
int SelectedCount = listView1.SelectedItems.Count;
for (int i=0; i < SelectedCount; i++){ itemx = listView1.SelectedItems[i]; path = itemx.SubItems[1].Text; pathList.Add(path); } string[] paths = (string[])pathList.ToArray(typeof(string)); DataObject dataObj = new DataObject(DataFormats.FileDrop, paths); DragDropEffects effect = DragDropEffects.Move; listView1.DoDragDrop(dataObj, effect); [/csharp] のようなコーディングになります。

ドラッグ&ドロップ後にListViewから項目を削除する

ドラッグ&ドロップ後にListViewから項目を削除するようにしたいと思ったら、こんな感じでできました。
[csharp]
for (int i = SelectedCount -1; i > -1; i–)
{
listView1.Items.Remove(listView1.SelectedItems[i]);
}
[/csharp]

まとめ

このような感じでドラッグ&ドロップを実装しましたが、もっとスマートな方法があったらコメント欄にコメントお願いします。

Microsoft Visual Studio Professional 2012 通常版
マイクロソフト (2012-09-21)
売り上げランキング: 150

『プログラミング』 C#はじめました

自宅でたまに行う定型作業、主にファイルサーバーの整理ですが、ファイルサーバーにログインをしてスクリプトで作業したり、エクスプローラ上で作業をしたりとしていました。

が、煩雑で一つのアプリから統一して管理、操作、実行できないかなと思っていました。
そうなると、Windowsでアプリを作成するのが一番の早道。

では、そのプログラミング言語として何が良いかなと考えたり質問してみた結果、GUIアプリということなので、C#を使ってみました。
具体的にはVisual Studio C#。
元々わたしはDelphi使いだったこともあって、C#はすんなり取り組むことができました。

C#はDelphiの開発チームが開発に関わったということもあり、スムーズに使えました。
約1時間で所望のアプリケーションができました。
もっとも、細かくブラッシュアップしていくのに凄い時間が掛かるのですがw

というわけで、C#をはじめました。
自分のメモとしてC#のTipsも追加していこうと思っています。

独習C# 第3版
独習C# 第3版

posted with amazlet at 13.01.23
ハーバート・シルト
翔泳社
売り上げランキング: 12,741