• 提醒:假如百度云分享链接失效,请联系站长,我会补上的。 《Android从入门到精通》PDF 下载 ...  电子版仅供预览,支持正版,喜欢的请购买正版书籍:...本书注重实际动手能力的培养,在遵循技术研发知识体系的严密


    提醒:假如百度云分享链接失效,请联系站长,我会补上的。
    《Android从入门到精通》PDF 下载

    下载地址:版权归作者和出版社所有,下载链接已删除,可以到 http://pan.java1234.com/ 搜索
     
    电子版仅供预览,支持正版,喜欢的请购买正版书籍:《Android从入门到精通》
     
    图书简介:
    本书注重实际动手能力的培养,在遵循技术研发知识体系的严密性的同时,在容易产生错误、不易理解的环节配上翔实的开发实例呈现给读者。每一个实例都经过精心挑选,解释详尽,使读者在实例学习中掌握Android编程思想和编程技巧。本书配有源代码,读者可快速、无障碍地学习Android实战开发技术。
     
    相关截图:
     
    图书目录:
    第1章 初识Android
     1.1 什么是Android
     1.1.1 移动信息设备分类
     1.1.2 Open Handset Alliance和Android
     1.2 Android简介
     1.2.1 Andriod的历史
     1.2.2 Andriod的未来
     1.2.3 Andriod平台的技术架构
     1.3 Android应用程序构成
     1.3.1 活动(Activity)
     1.3.2 意图(Intent)
     1.3.3 服务(Service)
     1.3.4 内容提供器(ContentProvider)
     1.4 Android网上资源
    第2章 搭建Android开发环境
     2.1 Android开发环境要求
     2.2 JDK的安装和配置
     2.2.1 安装JDK
     2.2.2 配置JDK
     2.3 Android SDK的下载和安装
     2.3.1 下载Android SDK
     2.3.2 安装Android SDK
     2.3.3 创建Android虚拟设备
     2.4 Eclipse的下载和安装
     2.4.1 下载和安装Eclipse
     2.4.2 安装和配置Eclipse中Android插件
     2.5 使用Eclipse开发Android应用程序
     2.5.1 使用Eclipse创建Android项目
     2.5.2 Eclipse中Android项目架构
     2.5.3 Eclipse中Android项目的调试和运行
    第3章 Android中的Activity
     3.1 Activity的作用
     3.2 单Activity的Android应用
     3.2.1 Activity的生命周期
     3.2.2 Activity类的结构
     3.3 Activity的两种界面设计方式
     3.3.1 基于XML的界面设计
     3.3.2 基于代码的界面设计
     3.4 应用实例:在界面中显示图片
    第4章 Android人机界面和常用组件
     4.1 用户人机界面元素分类
     4.1.1 视图组件(View)
     4.1.2 视图容器组件(ViewGroup)
     4.1.3 布局组件(Layout)
     4.1.4 布局参数(LayoutParams)
     4.2 常用Widget组件
     4.2.1 文本框视图(TextView)
     4.2.2 按钮(Button)
     4.2.3 图片按钮(ImageButton)
     4.2.4 编辑框(EditText)
     4.2.5 多项选择(CheckBox)
     4.2.6 单项选择(RadioGroup)
     4.2.7 下拉列表(Spinner)
     4.2.8 自动完成文本框视图(AutoCompleteTextView)
     4.2.9 日期选择器(DatePicker)
     4.2.10 时间选择器(TimePicker)
     4.2.11 数字时钟(DigitalClock)
     4.2.12 表状时钟(AnalogClock)
     4.2.13 进度条(ProgressBar)
     4.2.14 拖动条(SeekBar)
     4.2.15 评分条(RatingBar)
    第5章 Android中的视图组件
     5.1 视图组件
     5.1.1 图片视图(ImageView)
     5.1.2 滚动视图(ScrollView)
     5.1.3 网格视图(GridView)
     5.1.4 列表视图(ListView)
     5.1.5 切换图片(ImageSwitcher和Gallery)
     5.1.6 标签切换(Tab)
     5.2 通用XML属性
    第6章 Android菜单和布局设计
     6.1 菜单(Menu)
     6.1.1 上下文菜单(ContextMenu)
     6.1.2 选项菜单(OptionsMenu)
     6.1.3 基于XML的菜单结构
     6.2 界面布局设计
     6.2.1 基于XML的布局设计
     6.2.2 线性布局(LinearLayout)
     6.2.3 相对布局(RelativeLayout)
     6.2.4 表格布局(TableLayout)
     6.2.5 绝对布局(AbsoluteLayout)
     6.3 界面中的字体
     6.3.1 设置系统字体
     6.3.2 引用用户自定义字体
     6.4 应用实例详解:制作手机桌面
     6.4.1 实例分析
     6.4.2 实例实现
    第7章 Android中的核心Intent
     7.1 Intent的作用
     7.1.1 多Activity的Android应用
     7.1.2 Activity之间的消息传递
     7.2 Intent的分类
     7.2.1 Action Intent
     7.2.2 Broadcast Intent
     7.3 解析Intent的实现
     7.3.1 Intent Receiver
     7.3.2 Intent Filter
     7.4 设置Activity许可
     7.5 应用实例详解:电话拨号程序
     7.5.1 实例分析
     7.5.2 实例实现
    第8章 Android中的后台服务Service
     8.1 Service的作用
     8.2 Service的实现
     8.2.1 创建Service
     8.2.2 启动Service
     8.3 Toast和Notification应用
     8.3.1 使用Notification通知
     用户服务启动
     8.3.2 使用Toast显示通知信息
     8.4 应用实例详解:播放背景音乐
     8.4.1 实例分析
     8.4.2 实例实现
    第9章 Android中的数据存储
     9.1 使用Preferences存储数据
     9.1.1 访问Preferences的API
     9.1.2 使用XML存储Preferences数据
     9.2 使用文件存储数据
     9.2.1 访问应用中的文件数据
     9.2.2 访问设备中独立的文件数据
     9.3 使用SQLite数据库存储数据
     9.3.1 SQLite数据库简介
     9.3.2 SQLite数据库操作
     9.3.3 使用SQLiteDatabase对象操作数据库
     9.3.4 Cursor的使用
     9.4 使用ContentProvider
     9.4.1 定义ContentProvider
     9.4.2 使用ContentProvider进行CRUD操作
     9.5 应用实例详解:创建音乐
     播放列表
     9.5.1 实例分析
     9.5.2 实例实现
    第10章 Android的网络通信
     10.1 访问Internet
     10.1.1 使用WebKit组件访问Internet
     10.1.2 使用Apache HttpComponents访问Internet
     10.2 Socket通信
     10.3 应用实例详解:手机 短信程序
     10.3.1 实例分析
     10.3.2 实例实现
    第11章 Android的GPS应用开发
     11.1 GPS在手机中的应用
     11.2 Android Location-Based API简介
     11.3 Android模拟器支持的GPS定位文件
     11.3.1 KML
     11.3.2 NMEA
     11.4 应用实例详解:确定当前 位置的GPS程序
     11.4.1 实例分析
     11.4.2 实例实现
     11.5 基于Google Map的应用
     11.5.1 使用MapView显示地图
     11.5.2 使用MapController控制地图缩放
     11.6 应用实例详解:普通地图和卫星地图切换
     11.6.1 实例分析
     11.6.2 实例实现
    第12章 Android的搜索引擎和Gtalk开发
     12.1 搜索引擎在手机中的应用
     12.1.1 本地搜索
     12.1.2 Web搜索
     12.2 Android搜索引擎API简介
     12.3 应用实例详解:过滤式搜索 引擎程序
     12.3.1 实例分析
     12.3.2 实例实现
     12.4 Android的GTalk应用开发
     12.4.1 GTalk在手机中的应用
     12.4.2 Android GTalk API简介
     12.4.3 为GTalk配置Android模拟器
     12.5 应用实例详解:Google GTalk 程序
     12.5.1 实例分析
     12.5.2 实例实现
    第13章 Android综合案例开发:俄罗斯方块
     13.1 俄罗斯方块游戏功能需求
     13.2 俄罗斯方块游戏UI设计
     13.3 俄罗斯方块游戏功能实现
     13.4 俄罗斯方块游戏演示

    展开全文
  • Android学习路线指南

    2018-02-28 16:17:05
    看到一篇文章中提到“最近年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行...

    前言

    看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的。为什么中高级Android程序员不多呢?这是一个问题,我不好回答,但是我想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Android程序员提升自己。由于我也是从一个菜鸟过来的,所以我会结合我的个人经历以及我对Android学习过程的认识来写这篇文章,这会让这篇文章更加真实,而并非纸上谈兵。

    我的工作经历

    前面说到,我也是从一个Android菜鸟过来的。其实这句话放在任何人的身上都是适用的,即大家都是一步步过来的,因此作为初学者也不必因为技术差而郁闷,同理,高手也不要看不起一些所谓的菜鸟,因为这不公平,技术只有在同等的工作年限上才具有一定的可比性,也许你眼中的菜鸟只是个工作半年的新手,而你已经工作5年,可想而知,这根本不具有可比性,搞不好别人5年后可以达到比你更高的技术高度。

    我有若干个技术QQ群,群里(481798332)的小伙伴对我的工作经历比较感兴趣,刚好在这里我就做下介绍。我是硕士研究生毕业,我已经工作3年零3个月了,职位上从最开始的腾讯初级工程师变成了现在的百度Android资深工程师。最开始我并不是做Android的,先是做了半年的C++,接着做了3个月的Web前端,然后公司内部转岗做Android到至今,纯Android工作年限的话其实是2.5年。但是我认为我的Android工作经验(注:工作年限不等同于工作经验)不止2.5年,我投入大量的业余时间在Android开发上,并且我习惯去思考问题、总结问题并将其融会贯通,因此我的Android技术在短时间内有了很大的提升。

    在Android学习过程中,初学者踩过的坑我也都踩过,我也深深地知道大家在学习过程中最棘手的问题是什么。举个例子,在3年前,我想在SlidingMenu中放入一个ListView,发现二者总是不能很好地一起工作,这肯定是由于滑动冲突的问题,我也知道,但是不知道怎么解决。我就去学校图书馆翻遍了所有的Android书籍,无果。大家肯定都知道原因,为什么我无法从书中查找到问题的答案,因为入门书不讲滑动冲突,所谓的高级编程书也不讲。还有一个问题,我曾经以为view.post(runnable)可以让runnable的run方法在线程中执行,所以我就在run方法里面去做耗时的操作,现在想想我当时是多菜啊,因此我曾经也是菜鸟。

    直到若干年后的某一天,我终于琢磨透了滑动冲突的事,然后我就把解决问题的思想写在了CSDN博客上,但是好像看得人并不多,很多人并不能体会我的用心,后来我博客的访问量越来越大,这才慢慢地得到了一些人的关注。后来有一天我有了写书的契机,我想到了我最开始学习Android时所踩过的坑,想到滑动冲突对我的困扰,为了更好地传播我的技术经验,为了让更多的人少踩一些坑,为了让更多地人成为Android高级工程师,我毅然决定将Android开发中最重要的、最疑难的、最容易困扰大家的、成为高级工程师所必备的知识点和盘托出,这就是《Android开发艺术探索》存在的原因以及意义。书的反响怎么样呢?从目前读者的评价来看,内容基本无差评,我收到了很多读者的肯定以及感谢,这说明很多人能够理解我的用心。

    说了那么多,言归正传,下面说下Android学习路线的话题,本文打算从4个阶段来对Android的学习过程做一个全面的分析,分别为Android初级、中级、高级以及资深工程师,具体请看下面的分析。同理,本篇学习路线仍然只针对Android应用开发,不针对Rom开发和逆向工程等。这里虚拟一位“小明”的角色,在这里小明就是Android初学者的代表。

    初级工程师

    小明之前完全没接触过Android开发,是个应届生,他的待遇是13k,然后小明以校招的身份进入了百度,然后小明需要怎么学习才能成为初级工程师呢?这个时候,小明对编程基础、数据结构、C语言都有一定基础,Java语法什么的也都掌握的比较好,Android才有java语言,无奈的是小明并不会搞Android。

    小明首先需要购买一本Android入门的书籍,为了更快地学习Android,小明业余时间也都用来一边看书一边照着书中的例子敲代码,结果2周时间小明就把这本书学了一遍。看完这本书后,小明对Android的历史、结构、代码规范等都有了一个大概的了解,并且,小明已经可以写出一些简单的Activity了。这个时候在小明眼里,Android开发很简单很好玩,通过在xml中摆放一些按钮文本框什么的就可以做一些界面了。

    小明开始跟着他的技术导师做需求,一些简单的小需求小明自然是不在话下了。突然有一天来了一个需求,该需求要求小明在Activity中为一个button加一个动画效果,小明慌了:“完全没接触过,书上也没有讲,怎么办呢?”小明冷静了下,打开了百度搜索,输入“Android 动画”,打开前几个链接,小明恍然大悟,照着网上的例子把需求给实现了。后来导师告诉他:“学好Android,官方文档是必须看的,既全面又权威”。然后小明如获至宝,花了一年时间把上面的guide和training都看了一遍,并且他还动手抄了几个小例子。

    有一天,小明又需要做一个动画相关的需求,这可难不倒小明,它熟练地打开了www.baidu.com,输入“Android 动画”,突然他楞了一下:”总不能每次写动画都要百度一下吧!“,于是他在CSDN开了一个博客,把动画相关的知识点都写上去,为的是后面再写动画相关的代码就不用百度去搜了,事实如何呢?后面再写动画相关的代码,小明的确不用再去百度搜了,因为通过写一篇动画博客,他把动画相关的细节都已经记住了,这样他就可以不用再去参考任何文档了,后来小明还学会了把一些琐碎的不方便放在博客上的东西写到了印象笔记上面,什么时候忘了10秒钟以内都可以快速找回来,而不是花10分钟去再次搜索一遍。

    这里总结一下,Android入门的时候,需要有一本入门书,好好学习书中的内容,同时花一年时间把Android官方文档中的training和guide看一遍,同时通过写博客和记笔记的方式来做总结,建议让自己的每篇博客都有价值些。通过一年时间的学习,相信每个人都可以达到中级工程师的水平。

    技术要求:
    - 基本知识点
    比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术
    - 书籍推荐
    《第一行代码 Android》、《疯狂Android》

    中级工程师

    小明经过一年的努力学习终于成为Android中级工程师了,月薪变成了17k。到了中级工程师,已经可以在公司里干很多体力活了,但是一些很重要的任务小明还不能一个人承担起来,这个时候小明需要学习的内容就很多了,如下所示:
    - AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;
    - Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用;
    - 多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;
    - 事件分发:弹性滑动、滑动冲突等;
    - 玩转View:View的绘制原理、各种自定义View;
    - 动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;
    - 懂性能优化、熟悉mat等工具
    - 懂点常见的设计模式

    学习方法

    阅读进阶书籍,阅读Android源码,阅读官方文档并尝试自己写相关的技术文章,需要有一定技术深度和自我思考。在这个阶段的学习过程中,有2个点是比较困扰大家的,一个是阅读源码,另一个是自定义View以及滑动冲突。

    如何阅读源码呢?这是个头疼的问题,但是源码必须要读。阅读源码的时候不要深入代码细节不可自拔,要关注代码的流程并尽量挖掘出对应用层开发有用的结论。另外仔细阅读源码中对一个类或者方法的注释,在看不懂源码时,源码中的注释可以帮你更好地了解源码中的工作原理,这个过程虽然艰苦,但是别无他法。

    如何玩转自定义View呢?我的建议是不要通过学习自定义view而学习自定义view。为什么这么说呢?因为自定义view的种类太多了,各式各样的绚丽的自定义效果,如何学的玩呢!我们要透过现象看本质,更多地去关注自定义view所需的知识点,这里做如下总结:
    - 搞懂view的滑动原理
    - 搞懂如何实现弹性滑动
    - 搞懂view的滑动冲突
    - 搞懂view的measure、layout和draw
    - 然后再学习几个已有的自定义view的例子
    - 最后就可以搞定自定义view了,所谓万变不离其宗

    大概再需要1-2年时间,即可达到高级工程师的技术水平。我个人认为通过《Android开发艺术探索》和《Android群英传》可以缩短这个过程为0.5-1年。注意,达到高级工程师的技术水平不代表就可以立刻成为高级工程师(受机遇、是否跳槽的影响),但是技术达到了,成为高级工程师只是很简单的事。

    技术要求:
    - 稍微深入的知识点
    AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等
    - 书籍推荐
    《Android开发艺术探索》、《Android群英传》

    高级工程师

    小明成为了梦寐以求的高级工程师,月薪达到了20k,还拿到了一丢丢股票。这个时候小明的Android水平已经不错了,但是小明的目标是资深工程师,小明听说资深工程师月薪可以达到30k+。

    为了成为Android资深工程师,需要学习的东西就更多了,并且有些并不是那么具体了,如下所示:
    - 继续加深理解”稍微深入的知识点“中所定义的内容
    - 了解系统核心机制:
    1. 了解SystemServer的启动过程
    2. 了解主线程的消息循环模型
    3. 了解AMS和PMS的工作原理
    4. 能够回答问题”一个应用存在多少个Window?“
    5. 了解四大组件的大概工作流程
    6. …
    - 基本知识点的细节
    1. Activity的启动模式以及异常情况下不同Activity的表现
    2. Service的onBind和onReBind的关联
    3. onServiceDisconnected(ComponentName className)和binderDied()的区别
    4. AsyncTask在不同版本上的表现细节
    5. 线程池的细节和参数配置
    6. …
    - 熟悉设计模式,有架构意识

    学习方法

    这个时候已经没有太具体的学习方法了,无非就是看书、看源码和做项目,平时多种总结,尽量将知识融会贯通从而形成一种体系化的感觉。同时这个阶段对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习。关于设计模式的学习,最近一本新书推荐给大家《Android 源码设计模式解析与实战》,既可以学习设计模式,又可能体会到Android源码中的设计思想,我最近也在阅读此书。

    技术要求:
    - 稍微深入的知识点
    - 系统核心机制
    - 基本知识点的细节
    - 设计模式和架构
    - 书籍推荐
    《Android开发艺术探索》、《Android 源码设计模式解析与实战》、《Android内核剖析》

    资深工程师

    这个阶段的程序员也许并没有太具体的学习路线了。

    交流方式

    • QQ交流群:635778578
    • 欢迎关注我的公众号,会持续更新Android干货
      cover
    • 欢迎加入我的知识星球,一起学习交流
      cover
    展开全文
  • 《深入理解Android内核设计思想》适用于Android 4.3以上的版本。全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统等核心技术在Android中的实现原理。书...

    《深入理解Android内核设计思想》适用于Android 4.3以上的版本。全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统等核心技术在Android中的实现原理。书中讲述的知识点大部分来源于工程项目研发,因而具有较强的实用性,希望可以让读者“知其然,更知其所以然”。全书分为编译篇、系统原理篇、应用原理篇、系统工具篇共4篇22章,基本涵盖了参与Android开发所需具备的知识,并通过大量图片与实例来引导读者学习,以求尽量在源代码分析外为读者提供更易于理解的思维方式。
      《深入理解Android内核设计思想》既适合Android系统工程师,也适合于应用开发工程师来阅读提升Android开发能力。读者可以在《深入理解Android内核设计思想》潜移默化的学习过程中更深刻地理解Android系统,并将所学知识自然地应用到实际开发难题的解决中。


    http://download.csdn.net/download/hx0_0_8/8425385


    第1篇 Android编译篇 
      第1章 Android系统简介 
      1.1 Android系统发展历程 
      1.2 Android系统特点 
      1.3 Android系统框架 
      第2章 Android源码下载及编译 
      2.1 Android源码下载指南 
      2.1.1 基于Repo和Git的版本管理 
      2.1.2 Android源码下载流程 
      2.2 原生态系统编译指南 
      2.2.1 建立编译环境 
      2.2.2 编译流程 
      2.3 定制产品的编译与烧录 
      2.3.1 定制新产品 
      2.3.2 Linux内核编译 
      2.3.3 烧录 
      2.4 Android系统映像文件 
      2.4.1 boot.img 
      2.4.2 ramdisk.img 
      2.4.3 system.img 
      2.5 OTA系统升级 
      2.5.1 生成升级包 
      2.5.2 获取升级包 
      2.5.3 OTA升级—RecoveryMode 
      2.6 Android反编译 
      第3章 Android编译系统 
      3.1 Makefile入门 
      3.2 Android编译系统 
      3.2.1 Makefile依赖树的概念 
      3.2.2 树根节点droid 
      3.2.3 main.mk解析 
      3.2.4 droidcore节点 
      3.2.5 dist_files 
      3.2.6 Android.mk的编写规则 
      第2篇 Android原理篇 
      第4章 操作系统基础 
      4.1 计算机体系结构(Computer Architecture) 
      4.1.1 冯·诺依曼结构 
      4.1.2 哈佛结构 
      4.2 什么是操作系统 
      4.3 进程间通信的经典实现 
      4.3.1 共享内存(Shared Memory) 
      4.3.2 管道(Pipe) 
      4.3.3 Unix Domain Socket 
      4.3.4 RPC(RemoteProcedure Calls) 
      4.4 同步机制的经典实现 
      4.4.1 信号量(Semaphore) 
      4.4.2 Mutex 
      4.4.3 管程(Monitor) 
      4.4.4 同步范例 
      4.5 Android中的同步机制 
      4.5.1 进程间同步——Mutex 
      4.5.2 条件判断——Condition 
      4.5.3 “栅栏、障碍”——Barrier 
      4.5.4 加解锁的自动化操作——Autolock 
      4.6 操作系统内存管理基础 
      4.6.1 虚拟内存(Virtual Memory) 
      4.6.2 内存保护(Memory Protection) 
      4.6.3 内存分配与回收 
      4.6.4 进程间通信——mmap 
      4.7 Android中的Low Memory Killer 
      4.8 Android匿名共享内存(Anonymous Shared Memory) 
      4.8.1 Ashmem设备 
      4.8.2 Ashmem应用实例 
      4.9 JNI 
      4.9.1 Java函数的本地实现 
      4.9.2 本地代码访问JVM 
      4.10 学习Android系统的两条线索 
      第5章 Android进程/线程管理 
      5.1 Android进程和线程 
      5.2 Handler, MessageQueue,Runnable与Looper 
      5.3 UI主线程——ActivityThread 
      5.4 Thread类 
      5.4.1 Thread类的内部原理 
      5.4.2 Thread休眠和唤醒 
      5.4.3 Thread实例 
      5.5 Android应用程序的典型启动流程 
      第6章 进程间通信——Binder 
      6.1 智能指针 
      6.1.1 智能指针的设计理念 
      6.1.2 强指针sp 
      6.1.3 弱指针wp 
      6.2 进程间的数据传递载体——Parcel 
      6.3 Binder驱动与协议 
      6.3.1 打开Binder驱动——binder_open 
      6.3.2 binder_mmap 
      6.3.3 binder_ioctl 
      6.4 “DNS”服务器——ServiceManager(Binder Server) 
      6.4.1 ServiceManager的启动 
      6.4.2 ServiceManager的构建 
      6.4.3 获取ServiceManager服务——设计思考 
      6.4.4 ServiceManagerProxy 
      6.4.5 IBinder和BpBinder 
      6.4.6 ProcessState和IPCThreadState 
      6.5 Binder客户端——Binder Client 
      6.6 Android接口描述语言——AIDL 
      6.7 匿名Binder Server 
      第7章 Android启动过程简析 
      7.1 第一个系统进程(init) 
      7.1.1 init.rc语法 
      7.1.2 init.rc实例分析 
      7.2 系统关键服务的启动简析 
      7.2.1 Android的“DNS服务器”——ServiceManager 
      7.2.2 “孕育”新的线程和进程——Zygote 
      7.2.3 Android的“系统服务”——SystemServer 
      第8章 管理Activity和组件运行状态的系统进程——Activity ManagerService (AMS) 
      8.1 AMS功能概述 
      8.2 管理当前系统中Activity状态——Activity Stack 
      8.3 startActivity流程 
      8.4 完成同一任务的“集合”——Activity Task 
      8.4.1 “后进先出”——Last In,First Out 
      8.4.2 管理Activity Task 
      第9章 GUI系统之SurfaceFlinger 
      9.1 OpenGL ES与EGL 
      9.2 Android的硬件接口——HAL 
      9.3 Android终端显示设备的“化身”——Gralloc与Framebuffer 
      9.4 Android中的本地窗口 
      9.4.1 FramebufferNativeWindow 
      9.4.2 应用程序端的本地窗口——Surface 
      9.5 BufferQueue详解 
      9.5.1 BufferQueue的内部原理 
      9.5.2 BufferQueue中的缓冲区分配 
      9.5.3 应用程序的典型绘图流程 
      9.5.4 应用程序与BufferQueue的关系 
      9.6 SurfaceFlinger 
      9.6.1 “黄油计划”——Project Butter 
      9.6.2 SurfaceFlinger的启动 
      9.6.3 接口的服务端——Client 
      9.7 VSync的产生和处理 
      9.7.1 VSync信号的产生和分发 
      9.7.2 VSync信号的处理 
      9.7.3 handleMessageTransaction 
      9.7.4 “界面已经过时/无效,需要重新绘制”——handleMessageInvalidate 
      9.7.5 合成前的准备工作——precomposition 
      9.7.6 可见区域——rebuildLayerStacks 
      9.7.7 为“Composition”搭建环境——setupHWComposer 
      9.7.8 doDebugFlashRegions 
      9.7.9 docomposition 
      第10章 GUI系统之“窗口管理员”——WMS 
      10.1 “窗口管理员”——WMS综述 
      10.1.1 WMS的启动 
      10.1.2 WMS的基础功能 
      10.1.3 WMS的工作方式 
      10.1.4 WMS,AMS与Activity间的联系 
      10.2 窗口属性 
      10.2.1 窗口类型与层级 
      10.2.2 窗口策略(Window Policy) 
      10.2.3 窗口属性(LayoutParams) 
      10.3 窗口的添加过程 
      10.3.1 系统窗口的添加过程 
      10.3.2 Activity窗口的添加过程 
      10.3.3 窗口添加实例 
      10.4 Surface管理 
      10.4.1 Surface申请流程(relayout) 
      10.4.2 Surface的跨进程传递 
      10.4.3 Surface的业务操作 
      10.5 performLayoutAndPlaceSurfacesLockedInner 
      10.6 窗口大小的计算过程 
      10.7 启动窗口的添加与销毁 
      10.7.1 启动窗口的添加 
      10.7.2 启动窗口的销毁 
      10.8 窗口动画 
      10.8.1 窗口动画类型 
      10.8.2 动画流程跟踪——WindowStateAnimator 
      10.8.3 AppWindowAnimator 
      10.8.4 动画的执行过程 
      第11章 让你的界面炫彩起来的GUI系统之View体系 
      11.1 应用程序中的View框架 
      11.2 Activity中View Tree的创建过程 
      11.3 在WMS中注册窗口 
      11.4 ViewRoot的基本工作方式 
      11.5 View Tree的遍历时机 
      11.6 View Tree的遍历流程 
      11.7 View和ViewGroup属性 
      11.7.1 View的基本属性 
      11.7.2 ViewGroup的属性 
      11.7.3 View,ViewGroup和ViewParent 
      11.7.4 Callback接口 
      11.8 “作画“工具集——Canvas 
      11.8.1 “绘制UI”——Skia 
      11.8.2 数据中介——Surface.lockCanvas 
      11.8.3 解锁并提交结果——unlockCanvasAndPost 
      11.9 draw和onDraw 
      11.10 View中的消息传递 
      11.10.1 View中TouchEvent的投递流程 
      11.10.2 ViewGoup中TouchEvent的投递流程 
      11.11 View动画 
      第12章 “问渠哪得清如许,为有源头活水来”——InputManagerService与输入事件 
      12.1 事件的分类 
      12.2 事件的投递流程 
      12.2.1 InputManagerService 
      12.2.2 InputReaderThread 
      12.2.3 InputDispatcherThread 
      12.2.4 ViewRootImpl对事件的派发 
      第13章 应用不再同质化——音频系统 
      13.1 音频基础 
      13.1.1 声波 
      13.1.2 音频的录制、存储与回放 
      13.1.3 音频采样 
      13.1.4 Nyquist–Shannon采样定律 
      13.1.5 声道和立体声 
      13.1.6 声音定级——Weber–Fechner law 
      13.1.7 音频文件格式 
      13.2 音频框架 
      13.2.1 Linux中的音频框架 
      13.2.2 TinyAlsa 
      13.2.3 Android系统中的音频框架 
      13.3 音频系统的核心——AudioFlinger 
      13.3.1 AudioFlinger服务的启动和运行 
      13.3.2 AudioFlinger对音频设备的管理 
      13.3.3 PlaybackThread的循环主体 
      13.3.4 AudioMixer 
      13.4 策略的制定者——AudioPolicyService 
      13.4.1 AudioPolicyService概述 
      13.4.2 AudioPolicyService的启动过程 
      13.4.3 AudioPolicyService与音频设备 
      13.5 音频流的回放——AudioTrack 
      13.5.1 AudioTrack应用实例 
      13.5.2 AudioPolicyService的路由实现 
      13.6 音频数据流 
      13.6.1 AudioTrack中的音频流 
      13.6.2 AudioTrack和AudioFlinger间的数据交互 
      13.6.3 AudioMixer中的音频流 
      13.7 音量控制 
      13.8 音频系统的上层建筑 
      13.8.1 从功能入手 
      13.8.2 MediaPlayer 
      13.8.3 MediaRecorder 
      13.8.4 一个典型的多媒体录制程序 
      13.8.5 MediaRecorder源码解析 
      13.8.6 MediaPlayerService简析 
      13.9 Android支持的媒体格式 
      13.9.1 音频格式 
      13.9.2 视频格式 
      13.9.3 图片格式 
      13.9.4 网络流媒体 
      13.10 ID3信息简述 
      13.11 Android多媒体文件管理 
      13.11.1 MediaStore 
      13.11.2 多媒体文件信息的存储“仓库”——MediaProvider 
      13.11.3 多媒体文件管理中的“生产者”——MediaScanner 

    展开全文
  • 为了帮助大家更好的学习Android开发的相关知识,尚观4G智能操作系统研究室(www.up4g.com)为大家制作以下学习路线图;希望能帮助到广大的android爱好者。 在开始之前我们先来对相关知识进行一个简单的了解: ...

          为了帮助大家更好的学习Android开发的相关知识,尚观4G智能操作系统研究室(www.up4g.com)为大家制作以下学习路线图;希望能帮助到广大的android爱好者。 在开始之前我们先来对相关知识进行一个简单的了解:
     
    行业背景:
           今天,涉及通信产业链中的每个环节,都有Android的身影,Android是第一款完全完整打通了整个通信产业链中的操作系统,手机方案商、集成商、运营商、内容提供商、用户,都在玩Android,都惊讶于Android的爆发式增长速度,Android现在每天有超过50万台新的Android设备启用。
           随着Android平台的扩张,引发了Android人才荒,未来人才需求缺口将达百万。但符合条件的Android工程师屈指可数,企业招聘难度可想而知。据新京报等媒体报道Android工程师一年经验月薪8000元,对此李开复曾在微博谏言学生转学Android软件开发。我们相信,在未来几年内,Android开发工程师将成为3G行业炙手可热的岗位之一。

    什么是Android: 
           Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。 2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智能手机平台。

    行业薪资: 
           必学 Android的理由:
           更快的薪酬提升通道    更好的热门就业岗位    更多的行业人才需求    最热门的新技术行业
    据新京报等媒体报道Android工程师一年工作经验月薪可达8000元。李开复在微博上谏言学生转学Android软件开发。尚观已毕业学员薪资最高16000元/月(税后),最低3000元/月(在读专科),平均起薪4828.84元/月。 

                                                                                                                                                      查看尚观Android学员就业详情

    Android开发总体路线图:
            

    基础学习——JavaSE:
           很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。那么Java学到什么程度才算是过关呢?以下的JAVA的基础(JavaSE)语法知识必须全面掌握。

    经典学习视频教程

    Java 概述 标示符、关键字1 标示符、关键字2 运算符

    流程控制1

    流程控制2 字符串数组 面向对象编程特征1 面向对象编程特征2 面向对象编程特征方法
    面向对象编程特征 构造方法 面向对象编程特征this 面向对象编程特征 static package 访问控制
    继承1 继承2 继承3 接口1 接口2
    接口3 多态1 多态2 异常处理1 异常处理2
    集合1 集合2 集合3 集合4 集合5
    集合6 集合7 集合8 文件 文件和目录1
    文件和目录2 IO简介 文件流 缓冲流 缓冲流读写
    DB Eclipse 多线程1 多线程2 多线程3
    多线程4 多线程5 网络编程1 网络编程2 网络编程3
    网络编程4 文件读写 转换流 打印流 随机访问
    GUI-AWT GUIAWT2 GUIEVent GUI-作业 GUIswing
    GUIswing2        

    基础学习扩展——JavaEE:
           由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。Java EE:SSH—Struts+Spring+Hibernate。这种技术的优点的功能完整、强大,已经使用了很多年,而传统的互联网应用,大多数都是采用JAVA为其构造平台,这使得众多的内容提供商可快速的通过学习进入到Android的产品开发中来,并且可根据自己的内容特色更多的将精力放到交互设计以及UI表现力方面,大大缩短了移动互联网应用的开发周期。

    经典学习视频教程:

    JDBC-简介 jdbc_connection jdbc_statement jdbc_statement jdbc_resultset
    jdbc_metadata jdbc_preparedsta jdbc_callablest jdbc_dao01 jdbc_dao02
    WEB工程结构 Servlet简介 Servlet Fom表单处理 Servlet请求头信息 Servlet相应头信息
    Servlet Cookie Servlet Session Servlet-Scope Servlet-Filter Servlet-Listener
    Servlet-Resource JSP 简介 JSP-脚本元素 JSP-指令元素 JSP-动作元素
    JSP-内建对象 JSP-自定义标签 JSP-JSTL JSP-EL JSP-MVC
    JSP_Project01 JSP_Project02 Struts简介 Struts action StrutsActionForm
    Struts标签 Struts Dispatch 自动生成Struts Struts1自动验证1 Struts1自动验证2
    Struts1tags2 struts tags3 Struts tags4 Struts project1 Struts project2
    Struts project3 Struts project4 hibernate_配置01 hibernate_配置02 hibernate_基础配置
    hibernate_CompositeKey hibernate_Component hibernate_大数据类型 hibernate_继承映射 hibernate_继承映射实例
    hibernate_关联映射 hibernate_HQL hibernate_autoGen hibernate_pro2 struts2_config
    struts2_action struts2_action2 struts2converter 上次课作业 commons-fileupload
    struts2_Interceptor01 struts2_Interceptor02 struts2_Validation struts2_I18N struts2_tags01
    struts2_tags02 struts2_project1 Spring简介 Spring简介2 Spring-IOC
    Spring-DI Spring-AOP spring-AOP-API spring-AOP-XML spring-AOP-Transaction
    spring-JDBC01 Spring集成Hibernate      

    经典学习书籍推荐:
           Java学习的书籍目前有很多,我们在这里为大家推荐几本入门书籍适合初中级学习者,供大家参考。
    《Java编程规范》
    适合对象:初级,中级
    介绍:作者James Gosling(Java之父),对基础讲解的很不错。
    《Java编程思想》
    适合对象:初级,中级
    介绍:这本书的作者就是著名的C++编程思想,对OO的理解很好,Java作为一门面向对象的语言,你学习Java最好也同时参考这本书进行入门学习。

    《Java核心技术:卷Ⅰ基础知识》
    适合对象:初级,中级
    介绍:官方机构图书,你怎么也得有一本,这本书比较全面而且易懂。放在案旁用到的时候查一查,看一看。是学习入门必备书。


    基础学习扩展——Linux基础:
           Android是一种以Linux为基础的开放源码操作系统,在将来的学习和工作当中我们都会与linux命令打交道,补充一些Liunx基础知识还是很有必要的。

    经典学习视频教程
    Linux学习建议1 Linux学习建议2 UNIX like系统的特点 UNIX原则 系统结构与终端控制台
    RHEL5 Linux安装 Linux下寻求帮助 文件相关命令初步 系统命令初步 用户及组管理初步
    文件属性 文件夹属性及umask Linux编辑器及VIM初步 Linux查找及压缩 文本处理及正则表达式
    输入输出重定向及管道 进程控制 进程优先级前台后台 bash变量快捷键 bash运算符及启动脚本
    shell脚本及交互 shell脚本流程控制 shell脚本sed&awk Linux安装软件 linux下X图形显示体系

    经典学习书籍推荐:
           《鸟哥的私房菜》非常不错很适合初学者。
                                                         

    Android开发学习——基础理论:系统架构分析:
           Android系统从底向上一共分了4层,每一层都把底层实现封装,并暴露调用接口给上一层。
    1. Linux内核(Linux Kernel)
           Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。 Linux 内核是硬件和软件层之间的抽象层。

    2. 中间件 中间件包括两部分:
           核心库和运行时(libraries & Android runtime) 核心库包括,SurfaceManager 显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite 数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit 浏览器引擎等。
    Dalvik虚拟机:
           区别于Java虚拟机的是,每一个Android 应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik 虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。
    3. 应用程序框架(Application Framework)
           丰富而又可扩展性的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids), 文本框(text boxes),按钮( buttons), 可嵌入的web 浏览器。内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles )。通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

    2. 中间件 中间件包括两部分:
           Android 系统会内置一些应用程序包包括email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。目前基本所有的应用程序都是使用JAVA 语言编写的。

    经典学习视频教程
    Android发展现状及前景 Android 简介 Android-HelloWorld Android 应用程序基本原理 Android 布局简介
    Android 选项菜单 Android 通过XML配置文件创建菜单 Android 上下文菜单 Android 子菜单 Android 对话框
    Android 其它常见对话框 Android 用户界面Toast Android 用户界面-布局-线性布局 Android 用户界面-相对布局 Android 用户界面-表格布局
    Android 用户界面-表格布局2 Android 事件处理 Android 用户界面-常用组件 Android 用户界面-自动完成文本 Android 用户界面-列表视图
    Android用户界面列表视图2 Android时间选择对话框 Android 用户界面-进度条 Android 用户界面-表格视图 Android 用户界面-选项卡
    Android 播放器 Android无线点餐系统 博客登陆客户端1 博客登陆客户端2 俄罗斯方块1
    俄罗斯方块2        


    经典学习书籍推荐:
           《Android应用开发详解》书内容详细,案例丰富比较适合大家学习用。
                                                         
    ---------------------------------------------------------------------------------------------------------
    更多精彩内容:
        1、Android在线学习视频
        2、尚观Android学员最高月薪破16000(税后)!
        3、Android开发架构师 V3.2版课程(底层、框架、应用全涵盖)

     

    展开全文
  • 学习一样新事物或许有多种方式,报培训班,看视频,向高手请教等等,但一本好书往往可以让你少走很多弯路,事半功倍。 下面推荐本个人觉得搞Android开发值得一读的书籍。 再推荐个安卓开发者常上的平台,能很好的帮助...

    学习一样新事物或许有多种方式,报培训班,看视频,向高手请教等等,但一本好书往往可以让你少走很多弯路,事半功倍。

     下面推荐几本个人觉得搞Android开发值得一读的书籍。

     Head First Java

     推荐理由:Android应用层和大部分framework层用的都是java,加上现在大学教育大家都懂得,学的少,混的多,所以立志于搞这个,java基础还是有必要夯实一下的。

     Head First设计模式

     自己做一个模块挺长时间了,导师让出个文档。自己去写了,但导师看一遍后,就问,你知道这个功能是什么了,但是为什么这样设计,你想过没?当时我就被问住了,他也没多说什么,只是让我找些设计模式的书看看。

     推荐理由:虽然这本书看起来也很欢乐,但是设计模式到底还是一种编程习惯的浓缩,很多模式即使看到了,也不一定能理解,即使理解了,也不一定能用上。即使用上了,也不定真用对了。

     深入理解Android

     推荐理由:能帮助你深入理解view,作者的文笔流畅,见解独到,而且系统地,深入地讲解了Android系统原理。同事作者那种层层递进,抽丝剥茧式的分析模块的手法也非常值得学习。听说很快出2了,期待一下,哪怕是收藏。

     Android内核剖析

     推荐理由:作者本人就是从上到下无所不通的全才,但是行文非常务实,专注。讲的点都能讲透,感觉要是会点c或驱动看这本书会更有带入感。

     再推荐几个安卓开发者常上的平台,能很好的帮助你从各路大牛身上学到更多的东西。

     csdn

    csdn它是集新闻、论坛、群组、Blog、文档、下载、读书、Tag、网摘、搜索、.NET、Java、游戏、视频、人才、外包、第二书店、《程序员》等多种项目于一体的大型综合性IT门户网站,源码只是其中的一项,但是很实用 里边有很多大牛。

    DevStore

    DevStore全称Developer services Store,是全球首家开发者服务商店,是一个开发者服务整合类平台,目前DevStore已汇集国内外500余款开发者服务,这个数量每日还在继续增加。每个服务都有相对应的服务评测报告。开发者可以在这里提交服务、下载源码、评测、对服务进行对比并进行评论等等。

    开源中国

    开源中国成立于2008年8月,是目前国内最大的开源技术社区,经过不断改进,已经形成了由开源软件库、代码分享、资讯、翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。2013年,开源中国建立基于阿里云大型综合性的项目-中国源,旨在为软件行业提供完善的开发服务,为中国广大开发者提供丰富多样的软件下载,源码托管等功能。

    自学的话平时就多看一些官方文档,帮助文档也是一个很好的参考资料,多看看,平时多敲代码,多看多看注释多看规范,看完之后去敲代码主要是在实践过程中发现错误,多做项目自然多遇见问题,遇见问题解决问题,下次自然就知道怎么解决,在实践中发现真理。

    思考,没错,就是“想”。想你怎么把这三块儿合在一块儿,让自己的学习效率更高;想你在学习中遇到哪些障碍,最后是怎么解决的,这很重要!

    展开全文
  • 最终发现,只有《Android编程典型实例与项目开发》这本书最好,作者是吴亚峰、杜化美、苏亚光,电子工业出版社出版的。 这书好在哪呢??先说说其他的书籍,大致分两种,1种是自始至终都在讲一个例子的实现,这样的...
  • 受朋友之托,由于他是业余进行学习,需要我帮他推荐几本书及学习方法,我在这里简要的谈谈我学习android之路吧。 我以前是做嵌入式系统开发的,对于平台比较熟,所以我的学习方向是从下往上进行学习,有相同工作...
  • 如何学习Android开发

    2013-10-25 15:24:27
    如果你已经确定了学习Android的目标,那么,如果,应该提前做好哪些工作、先打下哪些基础呢?  如何做好Android学习前的准备?  首先,你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业
  • Android 是一个前景很大的平台,很多人都投入到android 开发中去了,有时候入门是一件很难的事,还有入门以后进阶也是阻碍重重,可能原因有很多,但不外乎是你自己的懒惰和学习方向的错误; 走了很多弯路后,我积累...
  • 这个问题我直到今天也没有答案,这天和朋友闲聊说到这个事情。他们有得说是智商有差距,有得说是学习的时候心不在焉——看着在学习,其实已神游大千世界。.....,不过,我自己从来没有下过类似的结论。我武断的...
  • 我们应该在分析它的源代码之前学习好一些理论知识,下面就介绍一些与Android系统相关的资料。 我们知道,Android系统是基于Linux内核来开发的,在分析它在运行时库层的源代码时,我们会经常碰到诸如管道(pipe)、...
  • Android 学习之路

    2018-12-01 14:06:22
    从事 Android 开发一周年了,作为一个非科班出身的程序员,一路走来其实挺不容易的。...主要原因是前年移动互联网高速发展,Android 开发需求量特大,很多人都去学习 Android。到目前这个阶段,...
  • 1.Android驱动是基于Linux驱动,强烈推荐阅读Linux Device Driver 3rd版,这本书讲了Linux下设备驱动的基础知识,要求反复细读。 2.能读懂和编写一些C程序。 3.能懂Java基础,因为Framework层的代码与驱动代码联系...
  • 最近看到很多Android新手问Android学习路线,学习方法啊,如何入门啊,所以我从网上找了一些资料,然后以我的工作经验给大家总结一下,让你们少走弯路,提取一些工作中经常用到的技术。二、学习知识汇总1、
  • 学习Android 需要什么程度的 Java 基础 1.java基础 a) Java基础语法:具体的知识点列表可以在这里下载:《Java知识点列表》V1.0。这部分内容没有讨价还价的余地,必须烂熟于胸。至于具体的学习方法,...
  • 2,如何系统学习Android知识?1,如何进入Android官网Android官网 这是我在CSDN的第一篇博客,主要是同事的鼓励,才鼓起勇气也向他学习好的学习、生活方式。希望,这篇文章能够对大家带来一些方便。 以前看过《异类...
  • Android 到 机器学习

    2017-11-09 22:26:30
    从今天起继续更新博客,不过不是关于Android的了,转行机器学习! 如果有同样转行的小伙伴,欢迎与我联系哈,大家可以互相帮助,共同进步! * 邮箱:15313851813@163.com * wx:w1048367400 作为关于机器学习的第...
  • 学习Android开发的时候,一直是跟着团队在做项目,但是没有一个系统的学习结构,导致感觉自己哪里都有错误,哪里都不会,前天买了本书,准备系统学习Android开发,下面记录学习中的相关心得,如果有什么不对的...
  • Android学习资料整理

    2017-10-24 16:30:16
    Android学习资料整理,希望对你有用! 1.书籍(只罗列了我自己买的并且是比较好的书)  (1).第一行代码(适合初级人员,入门级) 作者郭霖,江湖人称郭神,csdn博客大牛。  (2).Android 群英传 (适合初级人员,入门...
1 2 3 4 5 ... 20
收藏数 16,332
精华内容 6,532
关键字:

学习android需要那几本书