忙了半天编程,其实对整个Android的架构还不了解,还是回去细细的看看SDK中的文档吧。

学习SDK文档的步骤大概是这样

因为看了看Android Blog, 在最新的文章里面介绍了几篇文章,其中一篇是<<开发者的眼光来看Android SDK>>,作者在其中分析了的关于DOC的阅读顺序引起了我的兴趣,确实,那么多的文档,应该怎么看呢?哪些是必须先弄明白的?哪些应该先知道个大概,今后引用的时候再细细阅读?现在简要的介绍一下原作者的观点,希望能帮上你的忙。

1. 首先当然是要知道,什么是Android? 
2. 读一下Anatomy of an Android Application 能够知道一个Android application 中到底都有些什么东西 
3. 接着可以读一下 Development Tools文档 
4. 然后可以看一下关于什么周期的文章Lifecycle of an Android Application 
5. 现在可以动手了,玩玩hello world 吧,
Hello Android 
6. 回去读一下
Installing the SDK文档,再这篇文章的后半部分讲了很多关于Debug的功能和技巧 
7. 开始Notepad Application 的制作学习吧,如果你真正弄懂了关于这个应用程序的4个练习,你已经从菜鸟开始转向高手喽。 
8.
Developing Android Applications 花了很多时间来介绍更多的细节,包括如何实现UI,数据存储和读取,安全问题等 
9. 最后,你现在可以自由的漫步在links中了,找你感兴趣的读读吧。

我就先把第一步帮大家翻译过来吧

什么是Android ? (What is Android)

Android是一个手机设备软件栈,包含了一个操作系统、中间件和关键的应用程序,早期版本的Android SDK提供了必要的工具和API来帮助开发Android应用程序通过Java语言。( Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.)

特性(Features)

可重用和可替换组件的程序应用框架(Application framework enabling reuse and replacement of components)
针对移动设备优化过的Dalvik虚拟机(Dalvik virtual machine optimized for mobile devices)
集成了基于开源Webkit引擎的网页浏览器(Integrated browser based on the open source WebKit engine)
经过优化过的自定义2D图形库和基于OpenGL ES 1.0库 可选硬件加速(Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional))
SQLite结构化的数据存储数据库(SQLite for structured data storage
支持常规的音频视频多媒体格式,如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF(Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF))
GSM电话(硬件决定) (GSM Telephony (hardware dependent))
蓝牙、GPRS-EDGE、3G和Wifi无线网络(硬件决定) (Bluetooth, EDGE, 3G, and WiFi (hardware dependent))
相机、GPS全球定位、导航和感应加速器(Camera, GPS, compass, and accelerometer (hardware dependent)) 丰富的开发环境包含设备模拟器、工具、调试器、内存和性能分析工具,以及Eclipse集成开发环境插件(Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE)

Android构架(Android Architecture)

下面的图表显示了主要的Android操作系统组件,每部分的详细描述在下方有详细的介绍(The following diagram shows the major components of the Android operating system. Each section is described in more detail below.)

android构架

应用程序(Applications)

Android将启用一套核心应用程序包含Email电子邮件客户端、SMS短信程序、日历、电子地图、网页浏览器、联系人和其他相关常规程序,所有的程序写于Java语言(Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.)

程序框架(Application Framework)

开发者可以完全访问统一API框架通过核心程序,这个程序框架设计可以很简单实现组件复用;任何程序都可以提供他自己的功能到其他程序可以利用这些功能(所执行的组件手框架安全性限制前提下) ,同样允许组件被用户替换,Android开发网 友情提示OpenIntents项目就是一个典型的例子,通过androidmanifest.xml文件。(Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.)

下面所有的应用程序是一套完整的系统和服务(Underlying all applications is a set of services and systems, including )

通过使用丰富而可扩展的Views类来构造程序的用户界面,包含lists列表框、 grids表格、 text boxes文本框、 buttons按钮和浏览器嵌入控件(A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser)

内容提供允许你的程序访问数据从其他的程序如联系人或分享你自己的数据(Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data)

资源管理器提供了无需代码访问资源技术,如本地化的字符串、图片以及布局文件等.(A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files)

提醒管理器允许所有的应用程序显示自定义的闹铃提醒在状态条上(A Notification Manager that enables all applications to display custom alerts in the status bar)

窗口活动管理器可以管理消息生命周期和常规的导航恢复栈,Android开放网提醒如Intent(An Activity Manager that manages the life cycle of applications and provides a common navigation backstack)

类库(Libraries)

Android包含了一套C/C++库被用于多种组件,这些功能以Dalvik API接口形式提供给开发者通过Android程序框架,下面列出了核心类库(Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:)

系统C语言库 一个由BSD实现的标准C语言系统库,移植到Linux嵌入式设备上(System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices)
媒体库 基于PacketVideo的OpenCORE库,这个库支持录制和回放一些常见的影音格式,同时也支持静态图片包含MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG (Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
外观管理器 管理访问显示子系统和无缝合成2D、3D图形层从多个应用程序上。(Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
一个现代网页浏览引擎,提供Android浏览器嵌入到Web View类的支持(LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view)
基于SGL的基本2D图形引擎(SGL - the underlying 2D graphics engine)
3D图形库 一个基于OpenGL ES 1.0 API实现的3D类库,提供了硬件加速和高度优化的3D软件光栅(libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer)
FreeType一个位图和矢量子图渲染器(FreeType - bitmap and vector font rendering
SQLite一个强有力的轻量级关系数据库引擎提供给所有程序(SQLite - a powerful and lightweight relational database engine available to all applications)

Android运行时库(Android Runtime)

Android包含了一整套核心组件库提供了大多数的功能并以Java编程语言接口开放(Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.)

每个Android程序运行在自己的进程上,同时有它们自己的实例在Dalvik虚拟机上,Dalvik虚拟机可以运行,Dalvik虚拟机执行文件Dalvik Executable .dex格式提供了内存优化.(Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.)

Dalvik虚拟机依赖底层Linux内核函数如现成了底层内存管理(The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.)

Linux内核(Linux Kernel)

Android依靠Linux 2.6核心系统服务,如安全、内存管理、进程管理、网络栈和驱动模型,内核也可以做抽象层在软件栈和硬件之间(Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack)

如何学习android相关推荐

  1. 中国移动开发者社区专访:学习Android的两大法宝

    本文为原创,如需转载,请注明作者和出处,谢谢! 近日,接受了中国移动开发者社区的专访,谈了关于Android的一系列问题 http://dev.10086.cn/upload/developers_m ...

  2. 开始认真学习Android了

    从11年开始,就开始在以前那台破笔记本上装上了Android,并且买了一本当初去面试的时在等别人批改笔试题时候,翻看的Android入门书籍:但是由于那台笔记本实在性能太差,一打开eclipse就发热 ...

  3. 想学习Android开发

    最近被别人说知识面窄,心里受伤了.准备学学Android开发,如果能在手机里运行自己写的app,那是多么high ~~~ Android开发需要看什么资料呢? 说明:本人一直从事windows下的C+ ...

  4. 列表怎么有限的初始化为零_《零基础学习Android开发》第五课 类与面向对象编程1-1...

    视频:<零基础学习Android开发>第五课 类与面向对象编程1-1 类的定义.成员变量.构造方法.成员方法 一.从数据与逻辑相互关系审视代码 通过前面的课程,我们不断接触Java语言的知 ...

  5. Android菜鸟如何学习Android系统开发?

    如何做好Android学习前的准备? 如果你已经确定了学习Android的目标,那么,应该提前做好哪些工作.先打下哪些基础呢? 首先,你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业甚至理工类 ...

  6. 问题:android学习内容破碎,我个人关于如何学习android的一些个人经历

    android学习两个月心得 我于大三下学期,开始准备学习android,在寒假期间,学了毕向东的java视频的前10天,觉得还不错,上网找评论,他们都说,只要学到多线程就可以学习android了, ...

  7. 动画学习android,Android动画学习

    个人觉得学习Android动画最好的方式就是看开发者文档,所以我就当做翻译,将文章翻译一次吧 Animation Resources 动画资源可以用来定义两种类型的动画 创建一种将图片上进行一系列变化 ...

  8. 【转载】学习Android界面设计的超级利器HierarchyView.bat

    [转载]学习Android界面设计的超级利器HierarchyView.bat 存在问题:  我看到别人的程序,想学习人家的UI布局是怎么做的,如何能窥探一二?  存在问题:  在学习ViewGrou ...

  9. 《Android和PHP开发最佳实践》一1.3 如何学习Android和PHP

    1.3 如何学习Android和PHP 前面我们已经讨论过"为何学"的问题,大家应该对Android加PHP这套应用开发解决方案有了大致的了解.接下来介绍"如何学&quo ...

  10. 学习Android 应注意的十个问题

    转自:http://www.cn-java.com/www1/bbs/viewthread.php?tid=85662&extra=page%3D1&frombbs=1 学习Andro ...

最新文章

  1. 百面机器学习之特征工程
  2. Linux shell test用法
  3. mysql update使用select的结果
  4. php5.6的apaches的dll_Windows 10下 搭建Apache2.4、php5.6、mysql5.6
  5. 任正非:要提高待遇,敢于和美国争夺人才
  6. 用C语言编写绳索运动函数,福建省教师招聘考试小学数学真题试卷
  7. 解决pytorch RuntimeError: expected scalar type XXXX but found XXXX
  8. JMETER 第一个实践例子
  9. 2022级sdut知到/智慧树---c语言第一章测试题解
  10. 《信号与系统学习笔记》—z变换(二)
  11. 计算机关机后,电脑关机后自动重启怎么解决?
  12. 顺序结构程序设计实例
  13. windows系统服务器如何修改登录密码
  14. 卡尔曼滤波/粒子滤波融合定位模拟器
  15. 操作系统:操作系统内核是什么?
  16. win10wifi开关自动弹回_win10wlan开关自动弹回
  17. elementUI表格无数据显示图片
  18. django arya插件对数据库操作使用,reverse发娘解析url的使用
  19. 让AI为你制作思维导图 —— ChatMind
  20. 中文NER任务简析与深度算法模型总结和实战展示

热门文章

  1. 微型计算机配置认识,认识微型计算机(ppt课件)
  2. 简述Thread的interrupt()、interrupted()及isInterrupted()的区别
  3. AWS DynamoDB的简介与使用
  4. 学习post抓包最好用的抓包工具
  5. wps云文档本地服务器,wps云文档会存到本地?
  6. 写论文时,参考文献怎么引用?
  7. Leetcode学习网站
  8. EM算法(算法原理+算法收敛性)
  9. 时间序列分析深入总结(一)(附代码)
  10. 【数值分析】用matlab解决插值问题、常微分方程初值问题