Android开发艺术探索誊写笔记
文章平均质量分 95
WuWiggins
稀土掘金,时光不老,做一个安静的技术宅
展开
-
1_Activity生命周期分析
声明:这仅仅是对Android开发大神 任玉刚的作品《Android开发艺术探索》内容的誊写,不存在以广告、盈利等其他任何商业行为,仅仅是因书籍携带不便,不能随时“瞻仰”大神作品,故将书中内容誊写下来,(注:内容全部手打)。正常情况下Activity生命周期如图有7个生命周期回调 当用户打开新的Activity或者桌面的时候, 正常是onPause->o原创 2018-01-24 17:14:36 · 254 阅读 · 0 评论 -
14_JNI和NDK编程
java JNI的本意是java Native Interface(java本地接口),它是为了方便java调用C、C等本地代码所封装的一层接口。我们知道,java的优点是跨平台,但是作为优点的同时,其在和本地交互的时候就出现了短板。java的跨平台性导致其本地交互的能力不够强大,一些操作系统相关的特性java无法完成,于是提供了JNI专门用于和本地代码交互,这样就增强了java语言的本地交互能力...原创 2018-02-24 17:19:15 · 400 阅读 · 0 评论 -
13_综和技术
本章介绍的主题在日常开发中使用频率略低,但是对它们有一定的了解仍然是很有必要的。我们知道,不管程序怎么写都很难避免不crash,当程序crash后虽然无法让其再继续运行,但是如果能够知道程序crash的原因,那么就可以修复错误。但是很多时候产品发布后,如果用户使用时发生了crash,这个crash信息是很难获取到的,这非常不利于一个产品的持续发展。其实可以通过CrashHandler来监视应用的c...原创 2018-02-24 16:15:50 · 320 阅读 · 0 评论 -
7_Android动画深入分析
Android的动画可以分为三种:View动画、帧动画和属性动画,其实帧动画也属于View动画的一种,只不过它和平移旋转等常见的View等常见的View动画在表现形式上略有不同而已。View通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,是一种渐进式动画,并且View动画支持自定义。帧动画通过顺序播放一系列图像从而产生动画效果,可以简单理解为图片切换动画,很显然,如果...原创 2018-02-08 15:19:49 · 321 阅读 · 0 评论 -
5_理解RemoteViews
RemoteViews表示的是一个View机构,它可以在其他进程中显示,由于它在其他进程中显示,为了能够更新它的界面,RemoteViews提供了一组基础的操作作用于跨进程更新它的界面。RemoteViews在android中使用场景有两种:通知栏和桌面小部件。桌面小部件是通过AppWidgetProvider来实现的,AppWidgetProvider本质上是一个广播。通知栏和桌面小工具原创 2018-02-07 16:11:34 · 228 阅读 · 0 评论 -
4_View的工作原理
View的底层工作原理,比如View的测量,View的绘制,View的布局。除了View的三大流程,View的常见的回调方法也是需要熟练的,比如构造方法,onAttach、onVisibilityChanged、onDetach等。4.1 初识ViewRoot和DecorViewViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView原创 2018-02-07 11:00:53 · 324 阅读 · 0 评论 -
12_Bitmap的加载和Cache
本章的主题是Bitmap的加载和Cache,主要包含三个内容。首先讲述如果有效地加载一个Bitmap,这是一个很有意义的话题,由于Bitmap的特殊性以及Android对单个应用所施加的内存限制,比如16MB,这导致加载Bitamp的时候很容易出现内存溢出。java.lang.OutofMemoryError:bitmap size exceeds VM budget因此如何高效地加载Bitmap...原创 2018-02-11 17:57:54 · 311 阅读 · 0 评论 -
11_Android的线程和线程池
线程在android中是一个很重要的概念,从用途上来说,线程分为主线程和子线程,主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作。除了Thread本身以外,在Android中可以扮演线程角色的还有很多,比如AsyncTask和IntentService,同时HandlerThread也是一种特殊的线程,但是它们的本质任然是传统的线程。对于AsyncTask来说,它的底层用到了线程池。...原创 2018-02-11 16:16:14 · 279 阅读 · 0 评论 -
10_Android的消息机制
从开发的角度来说,Handler是Android消息机制的上层接口,这使得在开发过程中只需要和Handler交互即可。Handler的使用过程很简单,通过它可以轻松地将一个任务切换到Handler所在的线程中去执行。很多人认为Handler的作用是更新UI,这的确没错,但是更新UI仅仅是Handler的一个特殊的使用场景。有时候需要在子线程中进行耗时的I/O操作,可能是读取文件或者访问网络等,当耗...原创 2018-02-11 14:12:09 · 215 阅读 · 0 评论 -
3_View的事件体系
3.1.1 Veiw的基础知识什么是View:Android 开发中,Activity承担可视化的功能,同时Android系统提供了很多基础控件,View是Android中所有控件的基类,不管是基础的Button和TextView还是复杂的RelativeLayout和RecycleView,它们共同的基类都是View,View是一种界面层的控件的一种抽象,它代表了一个控件。除了View还原创 2018-02-06 10:40:23 · 300 阅读 · 0 评论 -
9_四大组件的工作过程
四大组件分别是Activity、Service、BroadcastReceiver和ContentProvider。首先对四大组件的运行状态和工作方式做一个概括化的描述,接着对四大组件的工作过程进行分析。通过分析它们的工作过程我们可以更好地理解系统内部的运行机制。9.1 四大组件的运行状态android的四大组件中除了BroadcastReceiver以外,其他组件必须在android-Manif...原创 2018-02-11 10:24:02 · 454 阅读 · 0 评论 -
8_理解Window和WindowManager
Window表示一个窗口的概念,在日常开发中直接接触Window的机会并不多,但是在某些特殊时候我们需要在桌面上显示一个类似悬浮窗的东西,那么这效果就需要用到Window来实现。Window是一个抽象类,它的具体实现是pHoneWindow。创建一个Window是一个很简单的事,只需要通过WindowManager即可完成。WindowManager是外界访问Window的入口,Window的具体...原创 2018-02-09 14:45:33 · 310 阅读 · 0 评论 -
2_IPC进程间通信机制
2.1 AndroidIPCIPC是intent-process-Communication的缩写,跨进程通信或进程间通信。进程和线程是两种不同的概念,线程是cpu调度最小的单元,也是一种有限的系统资源。而进程一般指一个执行单元,在PC和移动设备上指一个程序或者是一个应用。Android系统会为每个应用分配一个唯一一个的UID,具有相同的UID才能共享数据,两个应用通过ShareU原创 2018-02-02 14:36:41 · 392 阅读 · 0 评论 -
15_Android性能优化
本章是最后一章,主题是Android的性能优化方法和程序设计的一些思想。通过本章的内容,读者可以掌握常见的性能优化方法,这将有助于提高Android程序的性能:另一方面,本章还讲解了Android程序设计的一些思想,这将有助于提高程序的可维护性和扩展性。Android设备作为一种移动设备,不管是内存还是CPU的性能都受到了一定的限制,无法做到像PC设备那样具有超大的内存和高性能的CPU。鉴于这一点...原创 2018-02-24 18:05:58 · 334 阅读 · 0 评论