Browsed by
Author: YI

Android开发指导随译(2) — 应用程序基本原理(1)

Android开发指导随译(2) — 应用程序基本原理(1)

Android程序采用Java语音编写. 编译后的Java代码(包括资源文件和数据文件等)打包进一个Android package,以.apk为文件后缀. 一个.apk文件就是一个应用程序.

从各方面看, 每个Android应用程序都有”自己独立的世界”:
1. 缺省情况下, 每个应用程序都运行自己的linux进程.
2. 每个进程都有自己独立的VM, 因此应用程序之间是隔离的.
3. 缺省情况下, 每个程序都分配了一个唯一的linux user ID. 只有当前程序和当前用户(user)有权访问该程序的文件(?数据).

有可能两个程序共享同一个user ID, 这样他们就能互相看见对方的文件. 为了共享系统资源, 应用程序也可以采用同一个ID, 运行在同一个Linux进程中, 公用同一个VM.

应用程序组件
Android一个重要的特点就是: 应用程序可以使用其他应用程序的elements(?组件)(这些应用程序要开放这些elements).
程序不需要合并其他程序的代码或者将它们链接进来, 只需要根据需要启动其他程序的那部分代码即可. (笔注: 这个强啊! 是不是我理解错了? 直接启动其他程序的部分代码?)

为了支持上述特点, 需要利用应用程序任何一部分时, Android必须能够启动该应用程序, 并且实例化那一部分的Java对象. 因此, 与大多数其他系统应用程序不同, Android应用程序没有一个单独的程序入口(例如, 没有main()函数). 可以说, 应用程序由一些必要的components(组件)构成, 系统可以根据需要实例化并且运行这些组件.

有四类组件:

1. Activities (行为?)
2. Services (服务)
3. Broadcast receivers(广播接收者)
4. Content providers(内容提供者)

Android开发指导随译(1)

Android开发指导随译(1)

基于http://androidappdocs.appspot.com/guide/basics/what-is-android.html的翻译稿.

随译的意思是指: 随手进行的翻译. 因此语法未必严格, 内容不仅不和原稿严格匹配, 而且会有删减(只保留我感兴趣的东西).

什么是Android?
Android是一套为移动设备定制的软件套件. 它包括:一个操作系统, 中间件以及关键应用程序.
Android SDK提供了为Android平台开发应用所必须的工具和API集.
Android SDK采用Java编程语言.

Android包括以下关键特性:
1. 程序框架
2. Dalvik虚拟机(针对移动设备进行了优化)
3. 集成的浏览器(基于WebKit)
4. 优化后的图形库(2D, 3D)
5. SQLite (数据存储)
6. 多媒体支持(语音, 视频, 以及多种图像格式等,MPEG4,H264等)
7. GSM 电话技术(依赖硬件支持)
8. 蓝牙, EDGE, 3G以及WiFi(依赖硬件支持)
9. 摄像头, GPS, 指南针, 加速器(?是指重力感应吗)
10. 丰富的开发环境, 包括模拟器, 调试工具,性能优化以及基于Eclipse IDE的PlugIn.

Android架构
Android分成四层:
1. 应用程序层. 所有的应用程序都用Java语言进行编写.
2. 程序框架层.
3. 库以及Runtime;
4. Linux核心.

笔注: 应用层用Java编写, 库以及runtime是采用C/C++编写, 是谁来完成Java对C/C++的封装,供上层应用调用? JNI?

程序框架
程序框架包含一系列的功能(管理)集, 例如Windows的管理, View管理, 位置管理等, 有两个Manager需要注意:
1. Content Providers(内容提供)
它使应用程序能访问其他程序的数据, 或者共享它们自己的数据(给其他程序)

2. Activity Manager(生命周期管理)
管理程序的生命周期, 同时也提供一个通用的”navigation backstack”(这是什么? 历史堆栈的回顾?)


媒体库基于PacketVideo的OpenCORE库;
SQLite提供关系数据的存储;

Android runtime
每一个Android应用程序都有自己独立的进程, 并且有一个独立的Dalvik虚拟机实例.
Dalvik允许设备中run多个VM实例. Dalvik VM采用Dlavik Executable(.dex)格式运行执行文件.

MySQL一二三

MySQL一二三

开始使用MySQL

以下操作基于Fedora系统:

检查系统中是否已经安装了mysql相关的包:
rpm -qa |grep mysql -i

初始化数据库
/usr/bin/mysql_install_db

启动数据库
service mysqld restart

修改用户密码(需要先启动数据库):
mysqladmin -u root password ‘12344321’

登陆数据库
mysql -u root -p
系统提示会提示输入密码。

数据库目录:/var/lib/mysql
配置文件: /usr/share/mysql

在Ubuntu系统中,安装和使用MySQL也非常简单:

(1)安装MySQL

sudo apt-get install mysql-server

安装完成后,Ubuntu会弹出简单的对话框配置root的口令。

(2)启动(重启动)MySQL

sudo service mysql restart

搜到一个Android的blog

搜到一个Android的blog

内容挺丰富的, 先Mark一下, 慢慢看.

http://blog.csdn.net/Android_Tutor

Android现在越来越火了, 在各种移动设备, 甚至机顶盒上, 都开始有应用. 其实我挺关心Meamo(现在的MeeGo), 不过感觉Intel和Nokia不紧不慢的, 我都替他们着急, 再不加快节奏, 估计就被iPhone和Android超太多, 追赶起来就很困难了.

为什么要开这个blog?

为什么要开这个blog?

很简单, 主要原因是我希望能留下点记录, 记录我人生中的方方面面.

今天在网上看到一篇文章, 文章本身没有什么太多意思, 里面有句话却触动了我: 这十几年的时间里, 你都进步了什么?

是啊, 我都进步了什么呢? 一直以来感觉都是浑浑噩噩的. 已经过了三十几年了, 回头看看, 感觉什么都是模模糊糊的, 人生中很多重要的点, 路径都没有记录下来, 仿佛我从来都没有来过. 这确实让人很郁闷.

这些年来的技术学习和积累, 哪怕是一点点的心得体会, 都没有记录下来. 有很多工作是不必要的, 或者说是重复的. 如果能记录下来, 甚至做一点归纳和总结, 可能我会多进步一些.

最后, 我想说的是, 生活在这个神奇的国度, 什么事情都可能发生. 在国内的各blog上发表文章, 可能会被莫名其妙地和谐掉. 而国外的blog干脆就被和谐了. 建立自己的网站, 建立自己的blog似乎是唯一不受干扰的途径了.