Android姜饼系统更新2.3.3 NFC正式加入

Google去年年底发布姜饼(Android 2.3)系统时,曾经介绍NFC(近场通信)将会在新版的Android系统得到支持,用户可以使用手机进行近距离的数据分享和手机钱包功能。 Google在今天早上正式推出了Android 2.3.3版更新,NFC技术在该版本中得到全面支持。Nexus S是首款搭载姜饼系统上市的手机,在Google发布2.3.3 SDK之后,也陆续收到了OTA升级通知。本次更新主要加入了完整的NFC读写/传输API和NFC标准的支持,此外还有蓝牙、图形、语音识别和媒体API更新。

Android开发者网站已经放出了新版SDK的下载,地址为:http://developer.android.com/sdk/android-2.3.3.html。

在这次升级中并没有提到关于Nexus S手机的随机重启问题,Google之前已经承认这个问题的存在,并在1月28日宣布将会在一到两个星期内修复该错误,不过这次更新依然没有得到修正。

Nexus S中的Android将使用ext4文件系统

Google 新发布的 Nexus S 智能手机将是 Android 设备第一个使用 Ext4 文件系统的手机。ext4(第四扩展文件系统)文件系统是Linux系统下的日志文件系统,是ext3文件系统的后继版本。

Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:

1. 与 Ext3 兼容。 执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。

2. 更大的文件系统和更大的文件。 较之 Ext3 目前所支持的最大 16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系统,以及 16TB 的文件。

Read more…

魅族M8 Android Kernel tree项目开源

作为LBE小组魅族M8移植Android系统的主要开发人员,拉面(http://t.qq.com/lamian))今天正式将M8 Android kernel tree开源。“到目前为止,M8 内核代码已经相对稳定和成熟。遵守GPL协议,也遵守我们之前的诺言,LBE小组已经将最新版本的kernel tree开源,欢迎各位热心朋友参与开发。

Read more…

怎样成为一名Android开发者

Chris(克里斯)是一位来自波兰的Android应用开发者,最为一名非著名的开发者他开发的应用在Android Market上免费提供下载,并通过广告获得收入,最近他在自己的博客上面分享了从事Android开发带来的收入情况,并通过自己的经历给予 Android开发入门者非常忠实的忠告。作为国内从事Android开发的同行,APP虎第一时间发现并翻译了他的文章,以与广大Android开发者和即将进入Android开发的人们分享。

很多人认为从事Android开发是一件赔本的买卖。 他们说,如果你想赚钱,你应该转向iPhone,iPad和所有其他的平台。但事实显然不是这样的,虽然从事Android开发并没有让我收入数千美元,但我的收入是稳定的,并且一直在增长。

Read more…

Google开放Android应用可视化编程服务

Google实验室在两周前宣布推出一项名为App Inventor for Android(Android应用发明家)的新服务,将图形化模块化程序开发的概念移植到手机应用制作中,让普通的用户不必学习复杂的编程就可以制作出 自己需要的应用。目前这项服务已经面向申请者开放邀请。

App Inventor for Android申请地址:

http://appinventor.googlelabs.com/

Android应用发明家提供有一个图形模块化的应用程序制作界面,用户可以像搭积木一样将不同功能的模块进行连接,并可以在连接的手机上实时显示 程序的使用效果。目前这项服务提供有按钮、图片、声音、动画等基本功能的拖动式操作,以及对GPS、短信、通话、网络数据等功能的控制

App Inventor for Android

Thank you. Your information has been sent to the App Inventor team.

We are receiving a large number of requests for access to App Inventor. We’re working hard to increase our capacity, but it may be several weeks before we can accommodate these requests.

Android 2.2 (Froyo) 源码已经公布

为了庆祝Verizon Droid X的发布,Google公布了最新版Android 2.2 (Froyo) 源码,这套代码最早在5月份被披露,并试验性地运行在Nexus One上。

2.2版带来了提升后的性能,更快的浏览器,云到设备的消息传递和改进后的Android Market,并对微软Exchange提供了良好支持,目前共有60种Android设备可升级到该版本.

Android的系统架构

应用程序

以Java为编程语言,使Android从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责建立视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL链接,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。

Android System-architecture android

Android System-architecture android

View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。

中间件

操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。

Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。

Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、 PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

Android 使用skia 为内核图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。

Android的多媒体数据库采用SQLite3数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。

Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“寄存器型态”(Register Based)的Java虚拟机,变量皆存放于寄存器中,虚拟机的指令相对减少。

Dalvik虚拟机可以有多个instance, 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java Bytecode,而是运行一种称为.dex格式的文件。

硬件抽像层

Android HAL 是为了将 Android framework 与 Linux kernel 隔开,降低对 Linux kernel 的依赖,以达成kernel independent。Android HAL 目前以 HAL stub 的形式存在,本身是.so 档,是一种 proxy 的概念。Android runtime 向 HAL 取得 stub 的 operations,再以 callback 的方式操作函数。

操作系统

Android 是运行于 Linux kernel之上,但并不是GNU Linux。因为在一般GNU/Linux 里的功能,Android 大都没有支持,包括Cairo, X11, Alsa, FFmpeg, GTK, Pango, Glibc等都移除掉了。Android又以bionic 取代Glibc, 以Skia 取代Cairo, 再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除关于GNU Copyleft 的限制,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。

目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Managemeat),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。

Android的历史

Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(英语:Open Handset Alliance)(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google始发表自家品牌手机电话的Nexus One。

开发历史

Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,同时基于Linux的通用平台也进入了开发。

2008 Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。HAL 以 *.so 档的形式存在,可以把 Android framework 与 Linux kernel 隔开。

2010年2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging tree”)上除去,从此,Android与Linux开发主流将分道扬镳。

版本升级历史

Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以食物命名,比如1.5版叫做 Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是Eclair(法式奶油夹心甜点)和Flan(水果馅饼)。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素。

1.5 (Cupcake) 基于Linux Kernel 2.6.27

2009年4月30日,官方1.5版本(Cupcake)的Android发布。主要的更新如下:

* 拍摄/回放视频,并支持上传到youtube

* 支持立体声蓝牙耳机,同时改善自动配对性能

* 最新的采用WebKit技术的浏览器,支持拷贝/粘帖和页面中搜索

* GPS性能大大提高

* 屏幕虚拟键盘

* 主屏幕增加音乐播放器和相框widgets

* 应用程序自动随着手机旋转

* 短信,Gmail,日历,浏览器的用户界面大幅改善,比如说Gmail现在可以批量删除邮件了

* 相机启动速度加快,拍摄图片可以直接上传到picasa

* 来电照片显示

1.6 (Donut) 基于Linux Kernel 2.6.29

2009年9月15日, 1.6(Donut)版本SDK发布。主要的更新如下:

* 完全重新设计的Android Market

* 手势支持

* 支持CDMA网络

* 文字转语音系统(TXT-2-speech)

* 快速搜索框

* 全新的拍照界面

* 应用程序耗电查看

* 支持VPN

* 支持更多的屏幕分辨率

* 支持OpenCore2媒体引擎

* 新增面向视觉或听觉困难人群的易用性插件

2.0/2.0.1/2.1 (Eclair) 基于Linux Kernel 2.6.29

2009年10月26日, 2.0(Eclair)版本SDK发布。主要的更新如下:

* 优化硬件速度

* “Car Home”程序

* 支持更多的屏幕分辨率

* 重整界面

* 新的浏览器的用户界面和支持HTML5

* 新的联系人名单

* 更好的白色/黑色背景比率

* 改进Google Maps 3.1.2

* 支持Microsoft Exchange

* 支持内置相机闪光灯

* 数字变焦

* 改进的虚拟键盘

* 蓝牙2.1

Android的代号序列会按甜点名字中首个英文字母(C、D、E、F)的排列顺序。下一个版本的Android将会命名为Froyo(冻酸奶,基于Linux Kernel 2.6.32)。Froyo之后的版本的Android将会命名为Gingerbread(姜饼,基于Linux Kernel 2.6.33/34)。