
安卓开发艺术探索读书笔记
文章平均质量分 57
crazycat喵
这个作者很懒,什么都没留下…
展开
-
第1章. activity生命周期
当用户打开新的activity或者切换到桌面的时候,回调是onpause–》onstop。特殊情况,如果新activity采用了透明主题,那么当前activity不会回调onstop。用户回退back。回调是onPause–》onStop–》onDestroy从整个生命周期来说,onCreate和onDestroy是对应的,分别标记创建和销毁。并且只可能调用一次。onstart和onstop是从原创 2017-01-25 01:09:56 · 519 阅读 · 0 评论 -
第9章 四大组件的工作流程
activity启动由intent启动,分显示和隐式,隐式可以指向一个或者多个目标acitivity。service组件 有两种状态启动和绑定。service取于启动状态不需要要和外界直接交互。绑定状态时可以方便和外界交互,stopservice和unbindsevice可以停serive。BroadcastReceiver分静态动态注册。静态在清单文件组件不像动态注册需要context.reg原创 2017-10-15 21:23:45 · 492 阅读 · 0 评论 -
第11章 android的线程和线程池
android常见线程有thread,AsyncTask和Intentservice以及hangdlerthread。AsyncTask抽象泛型类四个核心方法1)onPreExecute()前期准备工作2)doInBackGround(Prama….params)异步任务,通过publishprogress来更新进度,它会调用onPregerssUdate3)onProgressUpdate()主原创 2017-10-29 20:44:02 · 562 阅读 · 0 评论 -
第10章 android的消息机制
handler需要MessageQueue和Looper支撑。MessageQueue翻译是队列实质采用单链表存储消息列表.Looper以无限循环的方式去查询新消息,ThreadLocal实质不是线程而是在每个线程中存储数据,并且可以轻松获取到每个线程的Lopper.主线程ActivityThread创建handler时就会创建looper.looper和ActivityThread,ams都有用原创 2017-10-08 17:44:30 · 359 阅读 · 0 评论 -
第5章 理解remoteview
RemoteView主要使用场景是通知栏和桌面小部件,可以跨进程更新界面自定义通知用到RemoteView,更新图片文字需要用到setTextViewText和setImageVIewResources,如果需要增加点击事件就需要使用PendingIntent的setOnClickPendingIntent。AppwidgetProvider在桌面小部件应用中是一个广播的存在。<?xml ve原创 2017-06-18 19:58:05 · 588 阅读 · 0 评论 -
第2章 IPC机制
android一个应用可以有多个进程,多进程就是给四大组件的清单文件只定android:process属性。以”:”开头属于当前应用私有进程,指定包名的进程只能通过shareuid并且两个应用相同才能共享数据。每一个进程都分配了对立的虚拟机,存在着不同的内存地址。使用多进程可能造成 1)静态成员和单例模式完全失效 2)线程同步机制完全失效 因为无法保证锁对象线程同步 3)shareprefere原创 2017-05-22 22:54:30 · 462 阅读 · 0 评论 -
第4章 view的工作原理
viewRoot对应于ViewRootImpl类,连接windowmanager和decorview,view的三大流程 measure,layout,draw通过他来实现。measure决定了view的宽高,测量完成可以通过getMeasurwith和getMeasureheight获取宽高。layout决定了view四个顶点坐标和实际宽高,完成后可以通过getright/getleft/gett原创 2017-04-16 22:30:35 · 407 阅读 · 0 评论 -
第3章 view的事件体系
view是android所有控件的基类,view位置有四个属性:top,left,bottom(相对于父容器坐标)。从Android 3.0开始,view增加了x、y、translationX、translationY四个参数,这几个参数也是相对于父容器的坐标。x和y是左上角的坐标,而translationX和translationY是view左上角相对于父容器的偏移量,默认值都是0。x = le原创 2017-04-04 22:59:37 · 673 阅读 · 0 评论 -
第15章.android性能优化方法
假如可以用Linearlayout,就用Linearlayout,因为Relativelayout比较复杂。采用include,merge,viewstub标签重用布局。include 的id以include指定id为准,假如根元素也有idinclude 假如指定android:layout_*属性,那么必须重写include的宽高。merge去掉多余的嵌套viewstub不参与绘制过程,原创 2017-02-03 17:26:46 · 438 阅读 · 0 评论 -
第13章.综合技术
通过carshhandler来获取应用的carsh信息 android提供了Thread类中的一个方法setDefaultUncaughtExceptionHandler。平时可以将carsh信息存储到sd卡然后在合适时机上传到服务器。 -自定义一个carshhandler实现UncaughtExceptionHandler。代码点击此处在Application的onCreate方法中设置一下即原创 2017-02-26 15:30:17 · 516 阅读 · 0 评论 -
第7章.android动画
android动画分为View动画 帧动画 属性动画View动画View动画包括平移,透明,缩放,旋转。用xml文件在res/anim创建 set标签做动画集合。interpolator插值器来改变动画是速度;shareInterpolator是否共享插值器。用duration改变动画时间,fillafter表示动画结束是否停留。最后通过AnimationUtils调用anim文件。可原创 2017-02-06 17:16:01 · 569 阅读 · 0 评论 -
第6章.Drawable系列
Drawbale使用简单,比自定义成本低,占用空间小可以通过getIntriWindth/height来获取他们的内部宽高,作为颜色的drawable没有宽高。1. BitmapDrawable表示的就是一张图片,可用过xml描述<?xml version="1.0" encoding="utf-8"?><bitmap xmlns:android="http://schemas.android.c原创 2016-07-26 17:56:40 · 640 阅读 · 0 评论 -
第12章 bitmap的加载和cache
bitmap加载常用的缓存策略是LruCache和DiskLruCache。一个常备用于内存缓存一个用于存储缓存。LRU是最近最少使用算法。。缓存快满时淘汰最少使用的缓存目标。使用BitmapFactory加载bitmap有decodefile(从文件系统加载),decodeResource(资源),decodeStream(输入流),decodeByteArray(字节数组)使用bitmapF原创 2017-11-14 16:26:25 · 492 阅读 · 0 评论