building Android open source project

1.       编译环境的搭建。

首先是选择操作系统。强烈推荐64 Ubuntu(我在 10.04.4 LTS 上编译成功)。

理由如下,最开始尝试用32arch编译,过程苦不堪言,尝试了一天之后放弃了,需要改太多地方。然后图省事换成32位的ubuntu(刚好有块安装盘),按照官方的步骤apt了一个又一个的包。编译的途中开始抱怨x86_64-linux-gcc only run on 64-bit linux 这个错误是一切折腾的开始。动手改makefile,能编译发现不能链接,这个包能链接发现下个又不能链接。。。狠狠google了一番,发现google2.3开始就放弃了32位的开发环境。鼓励大家用64位的os编译android。刚开始还有不少人在hack代码,使之能在32位下使用。现在已经是4.1的版本了,还在32位下坚持的人应该不多了吧。

操作系统定下来之后,接下来就顺了。

根据官方的教程安装以下包

$ 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

sun-java6-jdk (官网上给的那个源已失效)

$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

至于ccache这种加速的东西,我推荐成功编译之后再使用,刚开始还是单纯的编译源码,省的配置错了导致莫名其妙的错误。

2.下载源码

下载repo工具

curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo

repo init -u https://android.googlesource.com/platform/manifest

(推荐第一次下载的时候加上mirror参数,好处多多,可以方便的共享给其他同学用,可以方便的供以后各种需求,而不用再次忍受从google服务器上下载的龟爬网速)

Repo sync 抓源码

(如果加了mirror参数,此时得到的是服务器上的完全镜像,不能直接使用。需要换个目录再次repo)

3. build and run

$ source build/envsetup.sh

$ lunch full-eng
$ make –j4 
#######some hours later#######
$emulator 

如果执行emulator提示找不到,需要手动设置一下环境变量,最简单的方法就是执行一遍 source build/envsetup.sh && lunch full-eng

 enjoy the open-source!

 

 

 

搭建java web开发环境(eclipse + WTP + Tomcat)

第一步是安装eclipse。

eclipse有诸多个版本,随便挑一个。http://www.eclipse.org/downloads/

基本的是sdk版。这个是最小插件版,只有一个java开发的插件。其他的集成版本有 jave ee、等等。我挑的基本sdk版。也就是classic

第二步是自己安装wtp(web tools platform)插件。

这里有个很坑爹的地方。去网上搜索eclipse安装wtp,都会告诉你在install new software里选某个某个,或者加某个某个网址,开始搜索。然后就各种错误。后来发现是因为eclipse sdk有多个版本,每个版本对应的更新地址是不一样的。版本的名字会在启动eclipse的时候显示,比如juno、indigo等等。各自对应不同的更新地址。只要看好自己的版本,用正确的地址进行搜索就没问题了。

第三步是安装Tomcat。

这里没太多问题,就是新版的wtp不支持太低版的tomcat,换个较新的下载就好了。

下载zip包解压缩出来就可以了。

末了补一句,以上需要jdk的支持。

之后新建 dynamic web project就可以了。

 

用gitosis搭建git server

参考链接http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

1.安装gitosis
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install
(或者直接用包管理器apt-get 之类的安装)
注:需要python-setuptools
2.建议使用独立的账号来分配git权限。
sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git
3.初始化设置gitosis
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
id_rsa.pub是git server管理员的公钥
之后的步骤可以不用在server上操作了。可以在其他电脑上进行了。用git本身来管理gitosis
git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git
gitosis-admin目录中就两个东西,配置文件和密钥目录
gitosis.conf
keydir/

新建git库 newrepo。在gitosis.conf加入这行
[group newrepo]
members = test
writable = newrepo

用户test对newrepo有commit权限
下面命令建立newrepo库
mkdir newrepo
cd newrepo
git init
git remote add origin git@YOUR_SERVER_HOSTNAME:newrepo.git
# do some work, git add and commit files
git push origin master:refs/heads/master
增加用户只需要把新用户的公钥pub文件放到gitosis-admin下面的keydir中即可
示例:
cd gitosis-admin
cp ~/alice.pub keydir/
cp ~/bob.pub keydir/
git add keydir/alice.pub keydir/bob.pub

gitosis.conf changes:
[group myteam]
- members = jdoe
+ members = jdoe alice bob
writable = free_monkey
Commit and push:
git commit -a -m "Granted Alice and Bob commit rights to FreeMonkey"
git push

用git daemon 提供public访问权限
sudo -u git git daemon --base-path=/home/git/repositories/ --export-all