获取源码(也可以直接从别的地方拷贝代码放到固定路径下,如果直接拷贝就不用下面前5步了)
1:修改root权限密码。 修改Ubuntu的登陆设置,首先 用 sudo passwd root 设置 root账户密码,输入两次,然后修改 /etc/gdm/gdm.conf 文件的 AllowRoot=false 字段,改成 AllowRoot = true,然后重启电脑。注修改gdm.conf文件需要root权限,所以最好使用root帐号在vim中修改。
2:进入需要编译的代码所在的目录下。
3:安装curl和git-core。sudo apt-get install git-core curl
注:在Ubuntu 8.04上安装Git只需要设定正确的更新源,然后使用apt-get就可以了,apt-get是一条Linux命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。apt-get命令一般需要root权限执行,所以一般跟着sudo命令。)
4:获取repo脚本。 curl http://android.git.kernel.org/repo /bin/repo。因为前面已经对root密码进行了修改,并且对gdm.conf文件中的 AllowRoot = true。
5:获取Android源码。 ./repo init -u git://android.git.kernel.org/platform/manifest.git。(注,因为repo是安装在当前目录下,所以如果要用repo则使用.repo )。
编译源码
6:使用make -j2命令编译。中间出现一些警告信息无所谓,只要不报错停止运行就Ok了。如果出现了新建或覆盖了旧的Api的提示时多半是因为没有和服务器上的代码同步(使用git工具)。应该重新更新自己从服务器上下载的代码,然后再make -j2 。
7: cd packages/providers/
git pull
git checkout ContactsProvider
cd..
./tools/repo.git/repo sync //异步更新代码
cd frameworks/base/
git status
git checkout api/current.xml
cd packages/apps/Contacts/
git status
rm src/com/android/contacts/EmergencyContact.java~ src/com/android/contacts/Group.java~
git checkout src/com/android/contacts/AddGroup.java src/com/android/contacts/ContactsListActivity.java src/com/android/contacts/Group.java
./tools/repo.git/repo sync
make -j2
class SurfaceHolderCallback implements SurfaceHolder.Callback {
private static final int IMAGE_WIDTH = 512;
private static final int IMAGE_HEIGHT = 384;
private static final String ORIENTATION = "orientation";
private static final String ROTATION = "rotation";
private static final String PORTRAIT = "portrait";
private static final String LANDSCAPE = "landscape";
public void surfaceCreated(SurfaceHolder holder) {
try {
// This case can actually happen if the user opens and closes the camera too frequently.
// The problem is that we cannot really prevent this from happening as the user can easily
// get into a chain of activites and tries to escape using the back button.
// The most sensible solution would be to quit the entire EPostcard flow once the picture is sent.
camera = Camera.open();
} catch(Exception e) {
finish();
return;
}
//Surface.setOrientation(Display.DEFAULT_DISPLAY,Surface.ROTATION_90);
Parameters p = camera.getParameters();
p.setPictureSize(IMAGE_WIDTH, IMAGE_HEIGHT);
camera.getParameters().setRotation(90);
Camera.Size s = p.getSupportedPreviewSizes().get(0);
p.setPreviewSize( s.width, s.height );
p.setPictureFormat(PixelFormat.JPEG);
p.set("flash-mode", "auto");
camera.setParameters(p);
try {
camera.setPreviewDisplay(surfaceHolder);
} catch (Throwable ignored) {
Log.e(APP, "set preview error.", ignored);
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
if (isPreviewRunning) {
camera.stopPreview();
}
try {
camera.startPreview();
} catch(Exception e) {
Log.d(APP, "Cannot start preview", e);
}
isPreviewRunning = true;
}
public void surfaceDestroyed(SurfaceHolder arg0) {
if(isPreviewRunning && camera != null) {
if(camera!=null) {
camera.stopPreview();
camera.release();
camera = null;
}
isPreviewRunning = false;
}
}
}
转载自:http://shenxiangl.blog.35.cn/2007/04/01/rss-teaching/
什么是RSS?RSS是一种基于Web的网络数据交换规范,全称是Really Simple Syndication(RSS 2.0)(上面是wikipedia的解释),简单的说就是新闻聚合的意思,大家可以通过这种规范进行内容的交换,通俗意义上来说,你得到了对方的RSSfeed,通过相应的RSS聚合器,你就可以按照标题形式获得对方网站上最新的消息
什么是RSSfeed?RSSfeed是一种基于XML技术的聚合标准,直观地说就是你要获取消息的网站或者blog的内容的种子,你获得了这个网站的RSSfeed,然后添加到你的RSS聚合器中,你的RSS聚合器就会定时按照RSSfeed去解析对方网站上的内容,并按照上图的表现方式呈现到你面前,使你简单的就可以获取到自己感兴趣的网站或者blog的最新内容
如何订阅RSS?
首先你要知道如何获取一个网站的RSSfeed,当然,并不是所有的网站都有RSSfeed,因为他们的技术并不支持或者内容上并不需要RSS技术,但是有RSSfeed的网站或者blog都会有一个共同的标准,那就是在网站的侧栏或者底栏都会有一个标志来允许你获得该网站的RSSfeed。这种标志会有很多种,比如文字的RSS,XML,ATOM等链接,当你点击就会获得一串URL,然后把这串URL复制到你的RSS聚合器就可以了,还有就是RSS,XML,ATOM的小图标,点击的效果同上。还有就是一些图片,比如,样的图标,其点击效果是会自动帮助你把这个网站添加到你的在线RSS聚合器当中。
然后你就需要知道什么是RSS聚合器,他指一种软件或者网站,帮助你收集所有你添加过的RSSfeed所在的网站或者blog的新消息,并且呈现给你,比较常见的有国内的抓虾,国外的google reader,bloglines等网站,或者rssreader,feeddaemon,新浪点点通,周伯通等软件
订阅RSS有什么好处?
这个就不用多说了,通过订阅RSS,你可以在同一个页面浏览到你感兴趣的所有网站最近的消息,可以及时地了解最新动态或者朋友最近的心情事情,避免了你一个一个打开好友的页面,并且浏览可能你不感兴趣的内容或者错过发表时间较长被覆盖掉的你很感兴趣的内容