-
2011-11-04
<集合>红色趣味丛书 - [历史]
《老总小传》作者:马甲同志 http://blog.sina.com.cn/s/blog_5091b1dd0100c3nq.html
以非常不传统的视角书写总司令的光辉历程。
《非常轨迹——记中央红军长征中的四渡赤水抢渡金沙江之战》 作者:双石 http://zhoujun.blshe.com/category/349/9197
以电报文和分析为基础,重现“四渡赤水”;
时间,从1934年12月至1935年5月;
地点,湘(湖南)、桂(广西)、黔(贵州)、川(四川)、滇(云南);
中共参战部队:
军委纵队,叶剑英、陈云;
红一军团,林彪、聂荣臻;
红三军团,彭德怀、杨尚昆;
红五军团,董振堂、李卓然;
红九军团,罗炳辉、何长工;
游击队若干;
KMT参战:
中央军,薛岳;
湘军,何健;
黔军,王家烈;
川军,刘湘;
川军,刘文辉;
桂军,李宗仁,白崇禧;
滇军,龙云;
地方民团若干;
《朱毛之争》 作者:双石 http://zhoujun.blshe.com/category/349/9689
主要是叙述,分析发生在1929年6月的朱毛之争的前前后后,左左右右的一些事儿。
《Ifuleu红色八卦系列:【井冈山】》作者: 双石 http://zhoujun.blshe.com/category/349/34826
主要是叙述开始于1927年秋朱毛红军在井冈山的成长、战斗的事儿。
《十大元帅的情缘》 作者:孔庆东 http://blog.sina.com.cn/s/blog_476da36101000axq.html
《红军林彪》 作者:子金山 http://blog.sina.com.cn/s/articlelist_1256636234_10_1.html
主要是叙述了林彪元帅从1927年南昌起义到1935年红军长征结束这一段时间内的战斗历程。
-
2011-10-31
学习Android-Android初调试 - [Android]
系统库即可 )
-
2011-10-31
安装windows xp和ubuntu双操作系统的方法 - [杂记]
先装ubuntu,再装xp:4.
5.
6.
7. 在ubuntu中,reported."
8. 重启机器,进入grub界面,这时候恢复了ubuntu下面的grub启动界面。这时候你发现xp的启动选项可能不工作,别着急。
9. 按键c进入grub的命令行界面,键入root (hd0,之后按键tab键。这时候注意查看,在xp的分区信息中有一个uuid,记下来uuid,然后quit到ubuntu的grub启动界面。选择 xp的grub项,然后按键e,进入编辑模式,把记下来的uuid替换原来的uuid.这只后F10就可启动xp了。
10. 其实也可以不操作第9步,直接从ubuntu grub登录进入ubuntu系统,然后编辑:/boot/grub/grub.cfg文件,将xp启动项中的uuid替换成新的xp系统的uuid即可。我的修改之后的内容为:
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root 0E48A65048A6367D
drivemap -s (hd0) ${root}
chainloader +111. OK一切搞定。
另可参考:http://www.blags.org/windows-xp-disk-to-install-ubuntu-10-04/
-
2011-10-24
学习Android-了解Android(二) - [Android]
Android 通用架构
Android 有一个通用的展示软件栈的架构,即是如此图:
简单介绍:
Applications 层:主要是 Android 自带的 GMS(Google Mobile Service) 应用和应用开发者开发的应用;
Application Framework :主要是为 Application 开发者提供各种功能、服务和开发 API 。
Android Runtime(Core libraries and Dalvik Virtual Mache) :为应用运行提供运行环境的 Java 虚拟机和运行时库。
Libraries :主要是 Android 系统运行库和工具集;
C/C++ 库:
a) 标准 C/C++ 库 bionic : BSD 许可证,可以修改而无需公开源代码。提供 C/C++ 标准库绝大部分的功能,是一个专为嵌入式系统设计的轻量级标准库实现。相对于传统的 glibc ,其体积和内存占用很小。
b) C 语言工具库 libcutils :是 Android 系统中的基石库,基本上 Android 中所有的本地库和程序都链接了这个库。
c) init 进程:此进程是 Android 设备启动后,系统执行的第一个用户空间的可执行程序,由内核缺省直接启动,以守护进程的形式后台运行。提供以下功能:设备管理、解析并执行初始化脚本 init.rc 。
d) shell 工具: sh 和 toolbox 、 busybox 。
e) C++ 语言工具库 libutils :属于 Android 的底层库。以 C++ 实现,提供的 API 也是 C++ 接口规范。提供基本头文件、 Binder 框架以及使用 Binder 机制的相关库。
通过 Android 应用程序框架为开发者提供服务的 C/C++ 库 :
a) 系统 C 库:一个从 BSD 继承来的标准 C/C++ 系统函数库, 是专门为基于嵌入式 Linux 系统的设备定制的。即 bionic libc 库。
b) 媒体库:基于 PacketVideo OpenCORE 。该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
c) Surface Manager :对显示子系统的管理,并且为多个应用程序提 供了 2D 和 3D 图层的无缝融合。
d) LibWebCore :一个最新的 web 浏览器引擎用,支持 Android 浏览器和一个可嵌入的 web 视图
e) SGL - 底层的 2D 图形引擎
f) 3D libraries :基于 OpenGL ES 1.0 APIs 实现;该库可以使用硬件 3D 加速(如果可用)或者使用高度优化的 3D 软加速。
g) SQLite :一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
系统工具集 :
a) 主要以 busybox 为主,链接 bionic libc 库,为大多数嵌入式 Linux 所采用。主要包含一些系统管理工具,全为文本命令行工具。
b) 另外 Android 官方也提供了专门的调试守护进程,如 adbd 等。
HAL :一个对硬件访问虚拟化的中间抽象层,接着我们详细介绍;
Linux Kernel :基于开源 Linux kernel 经过修改的支撑整个软件栈的基础操作系统内核,当前主要是依赖于 Linux kernel 2.6 。驱动主要分为两类,一类是 Android 专用驱动,其并不是硬件驱动,而主要是一些为上层提供服务的辅助功能层,比如 ashmem 、 logger 、 binder 、 power manager ;另一类则是设备驱动则,其多是硬件驱动,属于 Linux 内核标准的驱动,比如 fb 显示驱动 (LCD) 、输入设备驱动 ( 游戏杆、鼠标、键盘、触摸屏 ) 、视频驱动 (Camera) 、音频驱动、 MTD 存储设备驱动、网络驱动 ( 蓝牙、 WiFi 、 Ethernet) 等。驱动在内存映射的时候也分为 kernel space 和 user space ,放在 kernel space 都是需要遵循 GPL 开源的;放在 user space 中的驱动,是遵循 Apache/MIT 许可证的,可以不开源,其运行在 kernel space 之上。
Hardware Abstraction Layer:
HAL 是 Google 为了解决 Linux 开源许可证 GPL 和 Android 本身的 Apache 许可证冲突的一个硬件抽象层,主要原则是把控制硬件的动作都放到了 Android HAL 中,而 linux driver 仅仅完成一些简单的数据交互作用,甚至把硬件寄存器空间直接映射到 user space 。
HAL 存在的原因:
1. 快速适配硬件设备中非 linux kernel 标准的接口;
2. 解决 Linux 开源许可证 GPL 与硬件设备厂商驱动的专利不兼容;通过 Android 的 Apache 许可证和 HAL 技术实现来解决这一难题;
3. 开放的满足设备厂商开发开与之驱动对应的特定需求的要求;
HAL 层具备如下特点:
1. 在用户空间 (user space) 而不是内核空间 (kernel space) ,可以是 c/c++ 库;
2. 将 Android platform 部分和系统硬件完全的进行了隔离开;
3. 向上层提供 Android platform 操作硬件的接口,向下要求硬件驱动对其功能进行实现; ( 比方说上层应用对于 Graphics, Audio, Camera, Bluetooth, GPS, Radio(RIL), Wifi 等的操作。 )
在编程方式上,上层应用通过 HAL 对硬件的操作有两种方式:
1. 通过 Java->JNI->*.so 库 (c/c++) ;
2. 通过 Java app->ApplicationManager->Service(java)->service(jni)->HAL->HAL stub->System Call 方式进行调用;
注:一般 HAL 动态库放在位置 /system/lib/hw 目录。
一般开发类型
1. Android 手机产品:构建硬件系统,移植 Android 软件平台系统;主要涉及设备驱动程序,以及在硬件抽象层实现标准接口等。
2. Android 应用程序:基于 Application Framework 和其他应用,开发应用程序;
3. Android 系统开发:主要是增强或者完善 Android 平台系统的功能,开发中主要包含如下部分:
a) 开发 c 或者 c++ 库;
b) 定义将要通过 JNI 提供的上层 Java 的系统 API 接口;
c) 封装 JNI ;
d) 通过 JNI 封装 Java 类和接口 API ,提供给 Android 应用使用;
Android 开发社区
Cyanogenmod 社区: http://www.cyanogenmod.com/
涉及开发语言: C/C++/Java 等。
-
2011-10-23
学习Android-了解Android(一) - [Android]
Android
Android 是 Google 公司为移动设备而开发的遵循 Apache/MIT 开源许可证、完全开发的、全软件栈操作系统。为 Android 应用开发者提供工具和框架;为用户提供一个不依赖硬件的通用平台;为设备商提供完整的解决方案。
Android is a comprehensive platform, which means it is a complete software stack for a mobile device.
For developers, Android provides all the tools and frameworks for developing mobile apps quickly and easily.
For users, Android just works right out of the box. Additionally, users can customize their phone experience substantially.
For manufactures, it is the complete solution for running their devices. Other than some hardware-specific drivers, Android provides everything else to make their devices work.
Android 生态系统
Google Android 开发系统由三个部分组成:
1. Android 源代码工程 (Open Source Project) 包括 Android 全部源代码 : https://source.android.com
2. Android 开发者 (Developer) 包括 SDK API 和文档 : https://developer.android.com
3. Android 应用市场 (Market) 是一个开发者发布应用程序的平台 : https://market.android.com/
Android 系统
Android 一词最早出现于法国作家利尔亚当( Auguste Villiers de l'Isle-Adam )在 1886 年发表的科幻小说《未来夏娃》( L' è ve future )中外表像人的机器起名为 Android ;
2003 年 10 月由 Andy Rubin 和 Rich Miner 创办一家公司 Android 专门研发 Android ;
2005 年 Google 收购了 Android 公司;
2007 年 11 月 5 日 Google 正式展示、发布了开源手机手机操作系统平台 Android 。 Google 宣布组建的一个全球性的联盟组织 - 开放手持设备联盟( Open Handset Alliance ),联盟将支持 Google 发布的手机操作系统或者应用软件,共同开发 Android 系统的开放源代码。开放手持设备联盟包括手机制造商、手机芯片厂商和移动运营商
2007 年 11 月 12 号发布 Google SDK 。
2008 年 8 月 18 日, Android 获得了美国联邦通信委员会( FCC )的批准;
2008 年 9 月 23 日,第一款 Android 手机发布, HTC Dream(G1) ;
2008 年, Patrick Brady 于 Google I/O 演讲“ Anatomy & Physiology of an Android ”,并提出的 Android HAL 架构图;
2009 年 2 月, Android 1.1 发布;
2009 年 2 月, Google 推出 Android Market 线上应用程序商店,用户可在该平台网页寻找、购买、下载及评级使用手机应用程序及其他内容;
2009 年 4 月 30 日, Android 1.5 Cupcake 版本发布;
2009 年 9 月 15 日, Android 1.6 Donut 版本发布;
2009 年 10 月 26 日, Android 2.0 Eclair 版本发布;
2010 年 2 月 3 日, Linux 内核开发者 Greg Kroah-Hartman 将 Android 的驱动程序从 Linux 内核“状态树”(“ staging tree ”)上除去,从此, Android 与 Linux 核心开发分道扬镳;
2010 年 5 月 20 日, 2.2 Froyo 版本发布;
2010 年 12 月 7 日, 2.3 Gingerbread 版本发布;
2011 年 2 月 2 日, 3.0 Honeycomb 版本发布;
2011 年 5 月 11 日, 3.1 Honeycomb 版本在 Google I/O 开发者大会宣布发布;
2011 年 7 月 13 日, 3.2 Honeycomb 版本发布;
2011 年 10 月 19 日, 4.0 Ice Cream Sandwich 版本发布;
Android 版本代号命名规则,从 Android 1.5 开始,按着 26 个英文字母的顺序作为首字母,选择一种甜点单词作为版本的代号;因此, Android 下一个版本发布的代号即是: Jelly Bean 。
Andy Rubin
纽约州 Chappaqua 长大,父亲拥有自己的消费电子直销公司,从小就接触各种最新的电子设备;
在纽约州由提卡学院读计算机科学。
毕业后在蔡司公司任机器人工程师。
1989 年加入苹果公司。
1990 年,苹果分拆他所在的手持计算和通信设备部门,成立 General Magic 公司,在这里他开发了手持设备操作系统 Magic Cap 。
公司倒闭后加入 Artemis Research ,开发了交互式互联网电视 WebTV 。
后与人创办 Danger 公司,担任 CEO ,但不久被免职。 Danger 公司开发了后来被称为 T-Mobile Sidekick 的手机,公司于 2008 年被微软收购。
2003 年与 Rich Miner 一起创办了 Android 公司。
2005 年 Android 公司被 Google 收购,任 Google 工程副总裁,领导开发了 Android 操作系统。
并拥有多项无线通信专利。
市场上手机操作系统
1. Apple iOS
2. Google Android
3. Microsoft Window Phone
4. Blackberry OS
5. HP WebOS
6. Nokia Symbian
7. Meego
8. Palm OS
9. Samsung Bada
10. Tizen









