Android开发的经典入门教材和学习…

Android开发的经典入门教材和学习路线?

1.想利用寒假期间学习Android开发,了解到应该先学习Java,不知道选哪本书入门,学习Java和Android有什么经典教材,适合初学者。(有C++的基础,但学的不是很好)

2.入门之后的学习路线是怎样的?到什么程度才能开发一款简单的APP?


.zm-item-answer"}" data-init="{"params": {"url_token": 26947538, "pagesize": 20, "offset": 0}, "nodename": "QuestionAnswerListV2"}" style="border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238);">
有同学评论说上面那个入门资料太过于肤浅,不适合于零基础,这样的话,我推荐 Java语言程序设计 (豆瓣),但是要抛去 第12章 图形用户界面基础 328、第15章 图形 402、第17章 创建图形用户界面 462、第18章 applet和多媒体 498,这几章基本没有任何实用价值了。
不需要看其他的Java书了,说一下我看过的Java书,第一本是 Core Java (豆瓣),英文版本的《Java核心技术》,里面的下册对范型的讨论太多了,有大量的篇幅讲述了SWing这种已经几乎完全被抛弃的技术,还有一大章讲了各种Java内置容器的实现,初学者一不小心就会陷入其中不能自拔,所以不要看,除非你时间实在充裕;其他国产的Java书里面大多则参和很多 JSP相关知识,仿佛学Java就是为了学习ssh,jdbc,这些在Android里面一点用不到。
要说什么Java技术在Android中应用最广泛,在我看来,无非是并发和多线程,随着现在手机核心越来越多愈发明显。
推荐的书单:
  • Java并发编程实战 (豆瓣),先是讲述了最基本的锁,对象同步,原子操作等,这是并发的基础,随后切入线程安全容器,这在Android中应用非常广泛,各种异步队列里面一般都维护了一个阻塞队列,比如Volley,典型的生产者-消费者模式+堵塞队列,接下来讲述了Executor框架,ThreadPoolExecutor框架,基本可以搞定Android中大多数多线程操作了,难得的是,这本书还花了一部分篇幅来讲述「为什么UI要设计为单线程」,这对理解Android之中的UI为什么不能在子线程刷新也有一定参考意义。当然,Android的窗口绘制复杂的多,并且以window manager service(wms),binder为核心。最重要的一点,这本书很薄,不会让你翻几页就再也不看了,完全可以一口气看完:)
  • Java并发编程的艺术 (豆瓣),同样很薄,与上本书内容基本无交叉,且有一部分尝试从JVM来入手阐述,是一本Java并发方面进阶的书籍,但是仅作扩展视野用即可,实用性与上一本差得多。
Android部分推荐一些我看过(或者浏览)过的书籍
  • 郭霖大神的第一行代码 (豆瓣),看起来厚,但是字大:),也属于薄书的范畴,内容不需过多重复赘述,我在前面的答案中已经多次安利过了,最适合Android入门的书,没有之一。
  • 打造高质量Android应用 (豆瓣),只有200页,满满的干货,大概相当于一本优秀博客的精华,ViewStub、各种控件的自定义(不只是自定义View,包括自定义ViewGroup,比如CascadeLayout,还没听说过这回事的同学建议去【移动开发】如何自定义ViewGroup了解下)、Activity.OnCreate回调中如何获取View的LayoutParams、如何改变Toast的弹出位置、后面更有各种超级实用的经验介绍,直接截图给你们看一下Android开发的经典入门教材和学习路线?---知乎不只是这些,更有很多装x必备点:Android开发的经典入门教材和学习路线?---知乎
其他的内容我就不剧透了,大家自己去品尝去吧!
  • 深入解析Android 5.0系统 (豆瓣),这本书貌似在豆瓣不太火,里面对源码流水账式的讲述也和容易让读者看着头大,但里面有一部分值得读下,那就是Android的核心支撑---Binder机制,从手写Aidl文件->C++来写一个Binder->Java层来写->分析Binder源码->分析Binder驱动,特别是里面的几幅关于Binder的架构图得到熟记,但看这本书时切忌陷进源码细节。
  • Android开发艺术探索 (豆瓣),为什么把任大神的这本著作放在最后呢,不管是在实用性还是阅读时机显然都不应该放在最后,原因主要是这本书还在邮寄中:),我还没来得及拜读,不敢妄加评论,不过根据目录来看,我认为在Android入门后就可以看了,属于实用性极强且较针对面试难点的书籍,每个知识点都讲解的恰到好处,毫不拖泥带水。
最后,以一句话结尾,看书千万不要看厚的,以200-400页为宜,能找到靠谱中文翻译版的不要看英文原版,当然如果经济允许的话,可以中英文各买一本,相互参考。
Google Android官方培训课程中文版(v0.7): http://hukai.me/android-training-course-in-chinese/index.html
这个是个不错的新手学习android开发的教学网站。可以试试看,个人感觉很不错。另外从自学的角度来说,android开发未必需要看什么所谓的入门指南啊之类的东西,那个完全是在耗费时间和精力,上面说了很多太过基础和没有使用价值的东西。学校程序设计相关的东西,动手才是最好最快的学习途径。这个网站就是通过叫你动手做来让你学习android开发过程的,真的有很大帮助

既然题主有C++的基础,就不建议看《Head First Java》了,直接看 Java语言程序设计 (豆瓣)或者 JAVA核心技术(卷1) (豆瓣)就好了,《Head First Java》我觉得是给从来没摸过编程的人看的,内容不深,而且为了让你去理解那些不深的内容,用了大量的比喻,解释,对于有编程基础的人来说完全不如开门见山来的实在;买回来一目十行,然后觉得好像浪费了钱......
关于书方面, 在选书时,要注意避开两种类型的书,一种是“系统源代码分析”型的,一种是“控件使用范例大全”型的;前者不适合初学者,后者权威性和更新速度都比不上API文档,买回来一般翻一翻就放着吃灰了,而且学不到重点。国内早期Android开发的书籍很多都可以归为这两类,近一两年才有所改观。这两类书有一个共同点,就是没有教给你怎么组织项目。楼上提到的《第一行代码》和《Android权威编程指南》我看过,都挺不错,就是使用的IDE是eclipse,建议硬着头皮上Android Studio来开发。
另外推荐三本进阶的书 : Android开发艺术探索 (豆瓣) Android群英传 (豆瓣) App研发录:架构设计、Crash分析和竞品技术分析 (豆瓣)
这三本书都是最近上市的新书,不同于上面那两种类型的书,这三本书基本都是基于工程经验来讲解的,非常实用,内容比较新,有涉及到Android 5.0以后相关API和Material Design的讲解,比较推荐,尤其是《App研发录》,囊括了如何封装一个应用的网络底层,缓存机制,ProGuard代码混淆等等内容,感觉作者可以说是毫无保留的把自己的项目经验分享出来,也许不适合你的项目,但绝对值得参考,《App研发录》比较建议买来看看。
在其它书籍方面,建议了解设计模式,我倒觉得 Head First 设计模式(中文版) (豆瓣)可以买来看看,因为Android经常需要封装自己用的模块,对设计模式的了解还是很有必要的。
=======问题分割线=======
关于题主所谓的简单项目,我不知道是有多简单。如果只是1000~2000行代码的课程设计级别的小demo,那你看过入门书就可以写了,最多简单的划分一下模块就好。但是如果你要做的东西上了规模,你就会发现应用的框架是个必须踩的坑,如果还像做小demo那样写,会很难受,比如Activity负责的东西太多导致难以维护,应用组件间通信,异常处理等。这时候项目需要借助很多开源库,也必须有一定等层次,模块划分,如何划分合适,好扩展,这又是一个需要深入研究的问题,我目前也在研究=_,=
所以关于 学习路线,我的建议是 
1. 掌握基础(基本组件,常用控件,生命周期,自定义样式,常用类等)
2.学习使用各种开源库(volley,okHttp,EventBus,ImageLoader,fresco等)
3.看看开源库的源码,学学其设计思想
4.尝试做一个规模比较大的项目
具体的操作,我建议是在学习基础时,跟着书或者自己想一个小项目做,先熟悉项目结构,开发环境,常用控件等,在基础差不多之后,可以自己写后台或者利用开放接口,做一个包含网络模块的项目,引入各种开源库,同时学习开源库。如果这个项目预先规划的很好,做出来效果不错,可以继续扩大,或者自己推倒重来再写一个。这样能积累比较多的经验,以后也可以将项目不断维护,作为一个新技术的实验平台。
======一点小建议========
最近实习发现hybrid很火啊,由于混合App在热更新上的优势,现在react-native,cordova/ionic大行其道,虽然说不可能完全取代Native,但是在“数据展示类”应用上,绝对少不了hybrid,BAT的应用全部都有hybrid模块,建议了解一下这一块。


Android开发的经典入门教材和学习路线?---知乎

个人认为

1.Java相关知识:

面向对象的概念

理解引用

继承/多态

接口/内部类/匿名内部类/回调(钩子)/观察者模式

异常(声明/捕获)

I/O:类结构/装饰者模式

容器:List/Map/…

多线程:同步/线程池/…

其中主要学会io和内部类即可,然后就可以去学习安卓的内容了。

2.Android的相关内容主要掌握

常用布局/控件的使用/ListView/…

dialog/PopupWindow/Option Menu/Context Menu

fragment

Activity(UIViewController)/broadcastreceiver/service/..

Activity和Service/activity和fragment

intent的各种属性/显式意图/隐式意图

网络通信http:http协议/httpclient/volley/.../json/xml解析

耗时任务:Thread/asynctask/handler

动画:Tween Animation(iOS核心动画:假象)/DrawableAnimation/Property Animation(3.0,UIView)

各种资源文件:字符串/数组/图片/.../style/attr/selector

以上是我认为做安卓的最基础的知识。有了这些知识便可以做出一款完整的app。
3.会使用一些开源项目。github上面有一个安卓开源项目汇总 Trinea/android-open-project · GitHub
4.做一两个项目

关于学习方法:
1.刚开始的时候,可以看视频,这样学起来快一些,刚开始我认为看书是没有用的,通过看视频快速掌握基本东西,可以达到事半功倍的效果。主要参考mars和老罗的视频。
2.这时已经会基本的开发了,接下来可以做一个项目用到平时学习的小的知识点。同样也可以跟着视频学习,网上有一些培训公司的视频,跟着写一个项目就明白软件开发的基本流程了。记住:一定要动手敲代码!
3.这个时候你会发现,做开发基本就是代码拼凑,拿一些现成的开源框架或者以前写过的代码复制粘贴,就是api的调用,已经很容易写一些东西了。就需要从入门阶段进行进阶了,可以将重心放在框架层的源码上面,研究安卓的源代码也是学习安卓的好方式。研究各种manager,Binder,时间分发,view绘制等等,可以做一些自定义的控件,研究开源框架,比如volley等。
4.务实基础,可能在前面的阶段java基础知识还不是很扎实,比如启动一个activity用到xxx.class写代码的时候只是照猫画虎,现在完全可以回头研究到底是什么东西,看java虚拟机等等,3和4也是同步的。
最最重要的就是基础知识,最近在看操作系统,算法这些,非科班出身的一定要重视基础知识。这样才能在这条路上走的更远,更好!
上面说的过程就是我学安卓和踏入it圈子两年以来的经历。最上面列举的java和android的基础知识是有一次和学弟学妹分享做的ppt里面的,希望能帮助到别人。

给题主分享以下android零基础的一套教程:
百度云盘链接:链接:  http://pan.baidu.com/s/1i4oyH3v  密码: 7n24 Android开发的经典入门教材和学习路线?---知乎
一,书籍,新手的话推荐郭霖的《第一行代码》(郭霖的csdn博客也很不错,推荐看下),《疯狂Android讲义》很厚,可以当字典查询。别太多一本就好,要知道android更新很快的,书籍是跟不上的,怎么滴还是多看看官方文档吧。
二,视频,给两个个人觉得不错的 1, http://www.imooc.com/course/programdetail/pid/10。2, http://www.jikexueyuan.com/path/android/。跟着视频学,配合着看书,这门基本算是入了,后面的路还很长,多练习多思考。
三, Android学习之路  ,stormzhang写的android学习之路。
四,Google Sample google在github上发布了大量Demo,不可错过的好材料。官方出品,必属精品。
从最简单的例子开始学起吧!曾经写过一个讲一个最简单的App如何开发的例子,麻雀虽小,五脏还算全,涉及到了Android开发中的一些关键知识,比如:
  • 配置开发环境
  • App中一个屏幕的抽象:Activity
  • 屏幕之间的跳转:Intent
  • 构成屏幕展示的视图组件:显示图片的ImageView,显示文字的TextView,把组件组成一个列表的视图ListView
  • 通过Adapter来控制模型和视图组件之间通信,即如何在视图上展示特定的数据
  • 通过事件来处理用户的交互:OnClickListener

传送门在这: Android开发入门经典实例

郭大神的《 Android第一行代码 》

快速入门. 慕课网

零基础Android学习路径图
这个网站还是很适合新手的


一个有着负编程基础的少年却有自己开发Android应用的野望~少年之野望如何实现?APP如何诞生?——好了。。这只是每个中二少年都有过的热血理想。。(比如我

从语言上说,Android应用开发基于的是Java语言,其实NDK开发中也涉及到了C语言。不过少年,你还是先学会走再开始跑吧。

首先,看书永远是最好的方法,Java语言基础学习推荐两本书:

《Head first Java 》 Head First Java (豆瓣)

《Java编程思想》 Java编程思想 (第4版) (豆瓣)

第一本入门讲解的十分生动,看着漫画就把门入了。第二本是经典中的经典,Java程序员必读书籍。

其次,现在的在线学习资源也十分丰富,觉得看书太麻烦的话看个视频也可以:Java编程导论



有了一些Java基础以后就可以开始学习Android基础开发了,

其实学习Android最好的资料是在  http://developer.android.com/  (需要科学上网,原因就不说了)

这里再推荐几本book:

深入理解Android 1(豆瓣)深入理解Android 2(豆瓣)


这里也推荐几个在线学习资源

极客学院:http://www.jikexueyuan.com/ (国内的平台,课程很全)

英语好的话,推荐U站上的安卓开发微学位,虽然需要付费,不过完成课程的话可以减免,很值! 安卓开发微学位 Android Developer Nanodegree Udacity

同样,这方面的MOOC课程也很多啦。。可以自己去Coursera啊edX啊搜索一下。(学会利用搜索引擎,永远是开始学习的第一步

开发应用不需要闭门造车,有很多成熟的三方库和三方控件可以使用。下面介绍一个大型程序员(同性)交友网站。GitHub · Where software is built。在这里你可以找到各种各样的三方库和控件,不仅仅是Android。

在这里建议少年你学习下Git。一个版本管理工具但不只是版本管理这么简单~~~

GitHub入门与实践 (豆瓣)

Git版本控制管理(第2版) (豆瓣)

如何使用Git和GitHub How to Use Git and GitHub Udacity(PS:是一个美女教师上课哦


应用开发完成就要发布了,发布应用就要涉及到应用市场,Google官方开设了一个系列课程,非常详细地讲解了自家Google Play的各种机制,对于初步了解安卓市场来说足够啦:

安卓市场服务:数据分析 Google Play Services: Analytics Udacity

安卓市场服务:地图 Google Play Services: Maps Udacity

安卓市场服务:身份认证 Google Play Services: Identity Udacity

安卓市场服务:移动电话广告市场 Google Play Services: AdMob Udacity

安卓市场服务:位置与环境:通过定位服务加强你的app功能 Google Play Services: Location & Context: Enhance Your App with Location Services Udacity

更多的关于市场的事就需要自己摸索了~(关于app推广知乎上也有挺多回答,可以自己搜索一下看看


PS,上面说的是非游戏类app,如果想做手机游戏的话需要学 Cocos2d 或者Unity3D 。

也推荐几个资源吧:

Cocos2d-JS 第一步 极客学院

Unity3D 窗口界面介绍 极客学院


好了,学到这里你可以开发应用了!问题回答完毕!

但是学习Android开发不仅仅是开发一个应用这么简单。你要是还有技能点的话就往下看,不过下面的坑是相当的深,慎入。


想进一步学习Android么?推荐一个网站。https://source.android.com/ (如果打不开就说明需要科学上网)把源码下载下来,阅读源码是进步的捷径。你也可以学习下如可编译源码,开发属于自己的ROM(这个就太复杂了涉及的东西太多了,但是弄个简单的还是可以的,这里不讲怎么刷机了)

研究源码时候会涉及到NDK的部分这就要求你有C的开发经验了。但是少年你现在你只学了JAVA,但是不用怕一颗充满野望的心怎么能被这点事儿难道。其实编程语言思想基本是互通的就是表达方式不一样。

推荐一些进阶学习资源:

C语言:

C语言程序设计 中国大学MOOC

C++语言程序设计 学堂在线

Linux:

鸟哥的Linux私房菜简体首页

Linux程序设计 (豆瓣)

深入Linux内核架构 (豆瓣)

NDK开发相关:

http://developer.android.com/tools/sdk/ndk/index.html (想办法科学上网,少年)


少年,学完上面的内容你基本上就是超神了。但是新的技术不断的涌现,不要放松对自己的要求。你还要冲钻石呢。

想想你离全栈工程师还有IOS,Python,PHP,JS,H5,JavaWeb..........想想也是醉了。

少年出发吧,我们的征程是星辰大海。



1.先学java 经典书籍很多,如《java核心技术》《thinking in java》《head first java》等,随便找一本了解一下语法。
2.入门Android,可以看郭霖的《第一行代码》介绍的是基本的Android知识!于此同时,可以学下设计模式推荐看《head first 设计模式》
3.做一些项目练手,就ok了

Android开发的经典入门教材和学习路线?---知乎 柯南 ,认知自我,认识世界
王越杨晓平j黑色衣服  等人赞同
入门书籍推荐java编程思想的都是有病

Android权威编程指南,今天快递刚到手。

前面的许多前辈介绍的学习路线都很好了,我也是从两个月前才发现自己对移动开发的兴趣而入坑的,就跟题主分享一下我对我学习过的书、视频教程和学习平台的体会吧,期望自己的经历能帮助题主少走一些弯路。
首先是郭霖大神的《 第一行代码》,确实是一本好书。从安卓基本框架的介绍,到开发环境的搭建,再到到第一个项目的创建,非常详细,很适合入门。最重要的是,这本书对安卓新手非常友好,与HeadFirst系列一样,给我的感觉都非常棒。
然后是 慕课网的安卓教程。个人觉得慕课网的界面设计很好,在上面学习挺舒服的。慕课网安卓教程中大部分是关于各种控件的介绍,期间夹杂一两个小项目(我觉得太少了)。给我的感觉是,跟着慕课网的教程走,进度太慢了。而且,讲师质量也参差不齐。有非常好的老师,也有讲话含糊不清的。
之后是 极客学院。不得不说,极客学院的界面,实在是让人无爱(个人意见)。而且,感觉极客的安卓课程似乎安排有一点乱,我在上面看了一两节课,就彻底放弃了。
不得不说的还有 黑马视频。我在学习《第一行代码》到Fragment这章的时候,感觉自己对基础的掌握还是太薄弱了,于是开始边看书,边看黑马视频。黑马的讲师给我的感觉是非常专业,讲课也非常棒。我在其中学到了很多之前不曾接触到的知识。黑马各期的安卓教程讲的东西都差不多,题主可以下一期试试看,同样很适合入门。
现在看的一本书是《android开发艺术探索》,讲了很多关于源码的知识,以我的水平来讲这本书确实有点难。不过,慢慢啃吧。
与题主共勉!

想学Android可以在google搜  Android tutorial
学C++ 就搜 C++ tutorial

先加强java基础。推荐高琪的java3000集(视频)。网上一搜都有。
在接着学习android基础:android疯狂讲义,第一行代码都是比较新的。推荐也是去看看各大教学网站的视频。
android进阶:android开发艺术探索,这本书内容极其强大,看到一半你对android框架层的东西就应该掌握的差不多了(包括ipc,activity加载机制,view的绘制,触摸事件,事件冲突等等)
最后:熟悉android三方jar。
网络通信 okhttp volley等
图片加载 imageloader 等
依赖注入 这个可以自己实现的~
事件驱动 RXJAVA FOR ANDROID(没用过)
也可以熟悉一些android快速开发框架 xutils(基于afinal) 
咦 不知不觉把自己的学习路线发上来了。

1.首先要学会翻墙上谷歌。
2.其实市面上的书基本都是按安卓官方文档和参考编的,个人更推荐后者。
3.安卓碎片化挺严重的,现在最新的系统版本是6.0,但是占比只有不到1%。而且开发的时候不同版本的api会有差别。比如说高版本的一些特性在低版本的就无法运行。
4.界面设计可以先不管,简洁就好了,推荐还是用material design,还是有很多东西要学的。
5.至于java,其实有C++基础,理解起来并不困难。可以边搞开发,边补充相关的知识。

我的情况和你描述的差不多,自学了一个月然后再用半个月开发了一个简单的todo类应用。最后发布到应用商店,然而并没有什么人用。。。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 Android 学习文档总结 ................... 1 DevDiv 推荐资源 ........................ 2 Windows 8 ........................................................... 2 iOS ....................................................................... 2 Android ................................................................ 2 Windows Phone ................................................... 2 其它 ..................................................................... 2 目录 3 第 1 章 Android 系统结构与初始化流程10 1.1. Android 的发展历史回顾 ............... 10 1.1.1. Android 系统的发布 .............. 10 1.1.2. Android 版本的发展情况 ...... 10 1.2. Android 系统架构 ........................... 12 1.2.1. 应用程序层 ............................ 12 1.2.2. 应用程序框架层 .................... 13 1.2.3. 系统运行库层: ....................... 13 1.2.4. Linux 内核层 .......................... 15 1.3. Android 系统的初始化流程 ........... 15 1.3.1. 启动 BootLoader .................... 15 1.3.2. 加载系统内核 ........................ 15 1.3.3. 启动 Init 进程 ......................... 16 1.3.4. 启动 Zygote 进程 ................... 16 1.3.5. 启动 Runtime 进程 ................ 17 1.3.6. 启动本地服务 ........................ 18 1.3.7. 启动 Home Laucher ............... 19 第 2 章 第二章 ................... 21 2.1. Activity 的架构设计 ....................... 21 2.1.1. 概述 ........................................ 21 2.1.2. 应用程序进程空间 ................ 21 2.1.3. ActivityThread 运行框架 ...... 24 2.1.4. Activity 加载过程 .................. 25 2.2. Activity 的生命周期 ....................... 27 2.2.1. Activity 的生命周期图 .......... 27 2.2.2. Activity 的四种状态 .............. 29 2.2.3. Activity 的生命周期循环 ...... 30 4 2.2.4. Activity 中四个重要的概念 .. 30 2.3. 旋转屏幕重新加载 Acitivity .......... 33 第 3 章 第三章 ................... 40 3.1. 缓冲界面 ......................................... 40 3.1.1. Demo1 .................................... 40 3.1.2. Demo2 .................................... 47 3.2. 宫格界面 ......................................... 52 3.2.1. 示例分析: ............................ 52 3.2.2. 效果展示 ................................ 58 3.3. Tab 界面 .......................................... 59 3.3.1. 示例分析 ................................ 60 3.3.2. 效果展示 ................................ 63 3.4. 二级列表 ......................................... 65 3.4.1. 示例分析 ................................ 65 3.4.2. 效果展示 ................................ 73 3.5. 抽屉效果 ......................................... 74 3.5.1. 示例分析 ................................ 76 3.5.2. 效果展示 ................................ 78 3.6. 使用 ViewFlipper 实现左右滑动效果82 3.6.1. 原理分析 ................................ 82 3.6.2. 示例分析 ................................ 83 3.6.3. 效果展示 ................................ 87 3.7. 使用 ViewPager 实现左右滑动效果89 3.7.1. Demo1 .................................... 90 3.7.2. Demo2 .................................... 98 3.8. Android Gallery ............................. 100 3.8.1. Demo1 .................................. 101 3.8.2. Demo2 .................................. 105 3.9. 悬浮框 ........................................... 107 3.9.1. 原理分析 .............................. 107 3.9.2. 示例分析 .............................. 107 3.9.3. 运行效果 .............................. 111 第 4 章 第四章 .................. 112 4.1. ListView 和 Adapter 的关系 ......... 112 4.1.1. 原理分析 .............................. 112 4.1.2. 示例分析: .......................... 115 4.1.3. 运行效果 .............................. 117 4.2. ListView 绑定 EmptyView ............ 118 4.2.1. 原理分析 .............................. 118 4.2.2. 示例分析 .............................. 119 5 4.3. 自定义 Adapter.............................. 129 4.3.1. 原理分析 .............................. 129 4.3.2. 示例分析 .............................. 130 4.3.3. 运行效果 .............................. 136 4.4. ListView 的使用技巧 .................... 136 4.4.1. 原理分析 .............................. 136 4.4.2. 示例分析 .............................. 140 4.4.3. 运行效果 .............................. 147 第 5 章 定制控件 ................ 152 5.1. 扩展系统控件 ............................... 152 5.1.1. 原理分析 .............................. 152 5.1.2. 示例分析 .............................. 153 5.1.3. 效果展示 .............................. 155 5.2. 自绘控件 ....................................... 155 5.2.1. 示例分析 .............................. 155 5.2.2. 运行效果 .............................. 159 5.3. 触屏事件处理 ............................... 160 5.3.1. 原理分析 .............................. 160 5.3.2. 示例分析 .............................. 162 5.3.3. 运行效果 .............................. 169 5.4. 扩展 ViewGroup 类 ....................... 169 5.4.1. 原理分析 .............................. 169 5.4.2. 示例分析 .............................. 170 5.4.3. 运行效果 .............................. 174 5.5. 自定义控件属性 ........................... 176 5.5.1. 原理分析 .............................. 176 5.5.2. 示例分析 .............................. 178 5.5.3. 运行效果 .............................. 178 5.6. 定制控件的 Style .......................... 179 5.6.1. 原理分析 .............................. 179 5.6.2. 示例分析 .............................. 181 5.6.3. 运行效果 .............................. 181 第 6 章 Drawable 分类汇总 ....... 183 6.1. Drawable 的分类 ........................... 183 6.1.1. ColorDrawable...................... 183 6.1.2. GradientDrawable ................. 184 6.1.3. BitmapDrawable ................... 190 6.1.4. NinePatchDrawable .............. 192 6.1.5. InsetDrawable ....................... 195 6.1.6. ClipDrawable ........................ 196 6 6.1.7. ScaleDrawable ...................... 198 6.1.8. RotateDrawable .................... 200 6.1.9. AnimationDrawable .............. 202 6.1.10. LayerDrawable ..................... 203 6.1.11. LevelListDrawable ............... 204 6.1.12. StateListDrawable ................ 207 6.1.13. TransitionDrawable .............. 211 6.2. 本章小结 ....................................... 213 第 7 章 图像操作技巧 ............ 214 7.1. 位图资源 ....................................... 214 7.1.1. 加载位图资源 ...................... 214 7.1.2. 创建位图资源 ...................... 216 7.1.3. 保存位图资源 ...................... 217 7.2. 常用的位图操作 ........................... 219 7.2.1. View 转换为 Bitmap ............ 219 7.2.2. 图片圆角处理 ...................... 222 7.2.3. 图片灰化处理 ...................... 224 7.2.4. 提取图像 Alpha 位图........... 225 7.2.5. 图像变换 .............................. 227 7.3. 内存溢出(OOM)问题 .............. 235 第 8 章 布局优化 ................ 236 8.1. 复用布局文件 ............................... 236 8.2. 布局的层次结构 ........................... 240 8.2.1. Heirachy Viewer ................... 241 8.2.2. 创建高效的布局 .................. 244 8.2.3. 合并布局 .............................. 250 8.2.4. 提高控件的查找效率 .......... 255 8.3. 布局文件延迟加载 ....................... 258 8.4. 本章小结 ....................................... 263 第 9 章 Android 的消息模型 ...... 264 9.1. UI 线程 .......................................... 264 9.2. 消息模型 ....................................... 268 9.2.1. 消息系统的基本原理 .......... 268 9.2.2. Android 的消息模型 ............ 269 9.2.3. 实例分析 .............................. 272 9.2.4. Handler 常见用法 ................ 285 9.3. 本章小结 ....................................... 292 第 10 章 Android 网络通信 ........ 293 10.1. 使用 HttpURLConnection 发送 Post/Get 请求 293 10.2. 设置 Proxy 访问网络 .................... 296 7 10.3. 文件下载断点续传的实现 ............ 298 10.3.1. 设计下载任务进度类 DownloadBean 298 10.3.2. 创建下载线程并可随时中断线程 299 10.3.3. 设置网络链接读取资源的有效范围 300 10.3.4. 使用 RandomAccessFile 随机读写文件 301 10.4. Android 网络通信补充资料 ......... 302 10.5. 本章小结 ....................................... 302 第 11 章 桌面组件 AppWidget ...... 303 11.1. AppWidget ..................................... 303 11.1.1. AppWidget 简介 ................... 303 11.1.2. AppWidget 架构 ................... 304 11.1.3. AppWidget 框架相关类简介307 11.2. AppWidget 开发步骤详解 ............ 310 11.2.1. AppWidgetProvider 类的使用310 11.2.2. AppWidget 开发实例 ........... 313 11.3. AppWidget 的补充资料 ................ 322 11.4. 本章小结 ....................................... 323 第 12 章 Android 系统服务 ........ 324 12.1. 系统服务介绍 ............................... 324 12.1.1. 系统服务简介 ...................... 324 12.1.2. 获得系统服务 ...................... 325 12.2. 系统服务开发详解 ....................... 326 12.2.1. 电源服务开发 ...................... 326 12.2.2. 窗口管理服务开发 .............. 329 12.2.3. Layout 扩展服务开发 .......... 331 12.2.4. Activity 服务开发 ................ 334 12.2.5. Notification 服务开发 .......... 337 12.2.6. 闹钟服务开发 ...................... 343 12.2.7. KeyGuard 服务开发 ............. 349 12.2.8. 位置服务开发 ...................... 351 12.2.9. Vibraror 服务开发 ................ 359 12.3. 本章小结 ....................................... 361 第 13 章 多媒体开发 .............. 362 13.1. Android 多媒体系统简介 ............. 362 13.1.1. Android 多媒体系统架构 .... 362 13.1.2. Android 多媒体系统功能 .... 364 13.1.3. OpenCore 简介 ..................... 365 13.1.4. OpenMAX 简介 ................... 365 13.2. MediaPlayer 的使用 ...................... 366 13.2.1. 初始化和准备播放 .............. 368 8 13.2.2. 播放控制 .............................. 369 13.2.3. 释放播放资源 ...................... 370 13.2.4. 视频播放 .............................. 370 13.2.5. 音频播放 .............................. 377 13.3. 音频视频录制 ............................... 379 13.3.1. 使用意图录制音频视频 ...... 379 13.3.2. 使用 MediaRecorder 音频视频录制 379 13.3.3. MediaRecorder 使用实例..... 382 13.4. Camera 使用 .................................. 387 13.4.1. Camera 简介 ......................... 387 13.4.2. 运用 Intent 捕获照片 ........... 388 13.4.3. 调用 Camera 组件捕获照片 389 13.5. SoundPool 类的使用 ..................... 393 13.5.1. SoundPool 类简介与适用场合393 13.5.2. 使用 SoundPool 播放声音 ... 395 13.6. 本章小结 ....................................... 398 第 14 章 图片异步加载及缓存 ...... 399 14.1. 异步加载与缓存的重要性 ............ 399 14.2. 垃圾回收机制与引用类型 ............ 400 14.2.1. JAVA 的垃圾回收机制 ........ 400 14.2.2. JAVA 引用类型 .................... 401 14.2.3. 使用软引用构建缓存 .......... 406 14.3. 本章小结 ....................................... 423 第 15 章 移动广告平台 ............ 424 15.1. 移动应用广告平台发展现状 ........ 424 15.2. 移动广告平台发展趋势 ................ 430 15.3. 移动广告平台的盈利模式 ............ 433 15.4. 选择广告平台 ............................... 434 15.4.1. 国内移动广告平台简介 ...... 434 15.4.2. 平台选择参考标准 .............. 435 15.5. 嵌入式广告插件 ........................... 436 15.6. 本章小结 ....................................... 446 第 16 章 Android 代码优化技术 .... 447 16.1. Android 代码优化技术 ................. 447 16.1.1. 尽可能避免创建不必要的对象447 16.1.2. 方法调用代码优化 .............. 449 16.1.3. 代码变量优化 ...................... 451 16.1.4. 代码过程优化 ...................... 453 16.2. 内存泄露代码优化及检测 ............ 457 16.2.1. 内存泄露 .............................. 457 9 16.2.2. 内存泄漏检测工具 .............. 457 16.2.3. MAT 使用示例 ..................... 458 16.3. Android 代码混淆技术 ................. 461 16.3.1. ProGuard 简介 ...................... 462 16.3.2. ProGuard 使用 ...................... 463 16.4. 本章小结 ....................................... 467 第 17 章 加解密 .................. 468 17.1. 保护自己的应用程序不被篡改 .... 468 17.2. BASE 64 编码对信息加密 ........... 471 17.3. RSA 算法使用介绍 ....................... 474 17.4. 本章小结 ....................................... 479

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值