公共技术知识点部分
- Android Activity生命周期
- onCreate中的savedInstanceState有何具体作用
- Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
- Android系统架构解析
显而易见的,根据上图自底向上我们知道Android系统架构包含5大部分:Linux Kernel(Linux内核) 、Libraries(库)、Android Runtime(ART)、Application framework(应用程序框架层)、application(应用程序层) - Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Android中ViewPager使用FragmentPagerAdapter(底部圆点)
- Android-Fragment的使用
- Android Fragment完全解析,关于碎片你所需知道的一切
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- Android之Dialog详解
- Android组件系列—-Intent详解
- Android中隐式Intent的用途-intent-filter过滤器(1)-理论部分
- Android Fragment 真正的完全解析(上)
- Android Fragment 真正的完全解析(下)
Android知识点进阶部分
1、论如何动态地获取Drawable中系列连续的图片
Android中 Bitmap Drawable Paint的获取、转换以及使用
2、Canvas对象的获取方式有两种:一种我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们操作这个Canvas,效果会直接反应在View中,另一种就是当你想创建一个Canvas对象时使用的方法:
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
Android Canvas绘图详解(图文)
3、Android中的软键盘的操作到处都是,比如当我们进入某个画面,该画面有个EditText控件,此时在没做处理的情况下会获取焦点自动弹出软键盘;因此我们想:
①、在该EditText 获取焦点时,不弹出软键盘
②、该EditText 获取焦点与不获取焦点,都不弹出软键盘
③、进入activity时,不弹出软键盘,当用户需要时再弹出软键盘。
④、点击屏幕其他地方该EditText 失去焦点,并且关闭软键盘。、
……
各种各样的需求如期而至。这里只介绍相关软键盘操作,至于为什么这么操作,深层次问题还得自己慢慢研究了
android软键盘的各种操作
4、onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?请看
Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
Android 编程下 Touch 事件的分发和消费机制
android 事件处理机制总结
5、一个Handler会允许你发送和处理Message或者Runnable对象关联到一个线程的消息队列MessageQueue中,每一个Handler的实例都会关联一个单一的线程和那个线程的消息队列中。当你创建一个一个新的Handler,它会绑定到你创建的线程和这个线程消息队列中。并且指向好它,它会让消息传递到关联好它的消息队列中,当它从消息队列出队的时候执行它
【Android 开发】: Android 消息处理机制之一: Handler 与 Message
【Android 开发】: Android 消息处理机制之二: Message 中 obtain()源代码剖析
【Android 开发】:Android 消息处理机制之三:Handler sendMessage() 源代码剖析
【Android 开发】: Android 消息处理机制之四: 消息循环 Looper 及其源码解析
6、一个Android程序默认情况下只有一个进程,但是一个进程却是可以有许线程的。在这些线程中,有一个线程叫做UI线程,也叫做Main Thread,除了Main Thread之外的线程都可称为Worker Thread。Main Thread主要负责控制UI页面的显示、更新、交互等。 因此所有在UI线程中的操作要求越短越好,只有这样用户才会觉得操作比较流畅。一个比较好的做法是把一些比较耗时的操作,例如网络请求、数据库操作、 复杂计算等逻辑都封装到单独的线程,这样就可以避免阻塞主线程,这个时候就用到了异步任务类AsyncTask。
AsyncTask初步解析
7、整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为
根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘
(draw),其框架过程如下
博客的话看这两份就足够了,简单易懂,要点清晰:
onMeasure流程解析
自定义控件其实很简单
8、Android所有的控件都是View或者View的子类,它其实表示的就是屏幕上的一块矩形区域,用一个Rect来表示,left,top表示View相对于它的parent View的起点,width,height表示View自己的宽高,通过这4个字段就能确定View在屏幕上的位置,确定位置后就可以开始绘制View的内容了
教你搞定Android自定义View
Android中自定义View的onMeasure以及MeasureSpec使用
自定义View 常用方法
Android开发之自定义控件(一)—onMeasure详解
Android开发之自定义控件(二)—onLayout详解
9、Android开发中,经常会接触到自定义View,而与View绘制相关的一组组方法很容易让人混淆
【Android开发】View的平移、缩放、旋转以及位置、坐标系
10、ViewDragHelper从名称上就可以看出, 这是一个用来简化view拖拽操作的帮助类。而且使用起来也很简单, 很方便,只需要几个方法和1个Callback就可以实现一个可以拖动到view。需要注意个是:ViewDragHelper是作用在一个ViewGroup上,也就是说他不能直接作用到被拖拽的view, 其实这也很好理解,因为view在布局中的位置是父ViewGroup决定的。那么如何使用ViewGroup实现一个可以拖动的view?
ViewDragHelper详解(一)- 可拖动的view
11、在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况
Android ListView工作原理完全解析,带你从源码的角度彻底理解
12、关于Android四大组件之Service的使用
Android Service 全解析
13、android在设计理念上强调组件化,组件之间的依赖性很小。我们往往发一个intent请求就可以启动另一个应用的activity,或者一个你不知道在哪个进程的service,或者可以注册一个广播,只要有这个事件发生你都可以收到,又或者你可以查询一个contentProvider获得你想要的数据,这其实都需要跨进程通信的支持。只是android将其封装的如此简单,应用开发者甚至完全不用关注它是不是和我在一个进程里
android中的跨进程通信的实现(一)远程调用过程和aidl
14、android提供了一个WebView控件,借助它我们就可以在自己的应用程序中嵌入一个浏览器,从而轻松的展示各种各样的网页
android学习十九(WebView的用法)
15、了解MVC和MVP模式异同点Android MVP模式 简单易懂的介绍方式
书籍推荐
Effective java中文版第二版
本书介绍了在Java编程中78条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码,Java开发进阶必备
第一行代码
书的作者是郭霖,Android开发的前辈,CSDN博客之星,郭神的博客写的很好,对很多Android开发很有帮助,这本书写的也确实不错,是入门的精选
Android开发艺术探索
《Android开发艺术探索》是一本Android进阶类书籍,作者也是CSDN知名博主任玉刚,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点,让初、中级工程师能够掌握高级工程师所具备的知识,作者以过来人的身份通过书本将开发中的重要知识点一一到来,使读者能够在技术深度和广度上都有很大程度上的提升,适合进阶看
Pro Android 5
随着Android版本的更新,精通Android也出版了最新的Pro Android5,本是适合想要入门Android的同学,也适合相关开发人员的参考,建议读者应该具有相应的Java基础,才能更好地阅读此书
Android编程权威指南(第二版)
有一点不得不佩服的是,老外的书或者说日本人的书都很适合入门,讲的都非常的详细,这本也不例外,而且是使用AS编辑器讲解的,引入实例学习,强力推荐
Android学习资源集合
1、codePath编程之路(需要翻墙)
2、Stack Overflow类似于英文版的知乎,几乎你在Android开发中遇到的所有坑都能在上面找到答案(需要翻墙)
3、Github唔,暂时定义为最大的程序员同性交友网站,上面有许多著名的开源库
4、慕课网慕课网是垂直的互联网IT技能免费学习网站。以独家视频教程、在线编程工具、学习计划、问答社区为核心特色
5、极客学院极客学院是中国android开发在线学习平台,涵盖了Android开发学习的基础入门、中级进阶,高级提升、项目实战开发等专业的android开发课程
6、eoeandroid论坛国内成立最早,最大最专业的Android开发者社区,为Android开发者提供海量优秀的Android学习资料
7、开源中国是目前国内最大的开源技术社区,为IT开发者提供了一个发现、使用、并交流开源技术的平台
8、安卓巴士专门为开发者提供最优质的资源服务、最完善的信息共享平台
9、JavaApk安卓应用游戏APP源码下载站
10、极客学院下载站功能同上
11、23Code安卓开源经典代码分享
12、Material Design中文版
13、Android官方培训课程中文版
14、Android DeveloperAndroid官方开发者中心(需要翻墙)
15、看源社区超级多精品源代码的
16、codekk集开源项目以及源码解析于一身的经验分享网站
17、泡在网上的日子 简称”泡网”,里面很多精品文章,原创或者转载的文章质量都很高
博客推荐
-
任玉刚,Android高级工程师,CSDN博客专家,2014十大博客之星,其在CSDN发表的博客多篇访问量达3万+,好评无数。
-
CSDN博客专家、沪江网软件工程师,是一位热爱编程、喜欢分享的极客
-
Android软件开发工程师。从事Android开发工作四年,有着丰富的项目实战经验,负责及参与开发过多款移动应用与游戏,对Android系统架构及应用层开发有着深入的理解。2013年3月开始,在CSDN上发表Android技术相关博文,很快就获得了大量网友的好评。短短一年时间博客访问量超过50万次,评价近3000条。荣获CSDN认证专家,并被评选为2013年CSDN年度博客之星
-
CSDN认证专家,2014博客之星.鸿洋老师精通Java企业级开发,对基于Java的Web框架有一定的认知。
而且还在csdn上撰写了”Android 精彩案例”一系列博文 -
从2011年至今,在国内知名IT技术社区CSDN上开设了《老罗的Android之旅》专栏(http://blog.csdn.net/luoshengyang),发表了130+篇高质量文章,并且制作了十多个PPT作为博客文章导读。博客的访问量一直居于前茅,排名在100以内,并且有6000+的评论。
-
CSDN知名博主,注移动互联网开发,关注移动支付业务
-
D_clock是简书的博主,他写的多篇最佳开发实践总结系列获得诸多好评,文章思路清晰,实打实的都是干货
汇总Github地址
[Android 学习资料收集]
(https://github.com/Freelander/Android_Data)