随笔分类 - 开发机制
摘要:插值器:就是一个函数,将时间t经过一个函数的变换映射到t',从而影响动画的运动轨迹和速度变化 如何实现一个插值器 使用
阅读全文
摘要:几种常见解决消息即时获取方案 1)轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息 2)SMS(短信消息)(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受 3)持久连接(Push)方式:客户端和服务器之间建
阅读全文
摘要:1)Android是基于Linux内核的,因此Linux对文件权限的控制同样适用于Android。在Android中每个应用都有自己的/data/data/包名文件夹,该文件夹只能该应用访问,而其他应用则无权访问 2)Android的权限机制保护了用户的合法权益。如果我们的代码想拨打电话、发送短信、
阅读全文
摘要:Picasso、Imageloader、Fresco、Glide的优劣 Fresco: 优点: 1)图片存储在安卓系统的匿名共享内存,而不是虚拟机的堆内存中,图片的中间缓存数据也存放在本地堆内存,所以,应用程序有更多的内存使用,不会因为图片加载而导致oom,同时也减少垃圾回收器频繁调用回收Bitma
阅读全文
摘要:handler面试必问 解析: Android提供了Handler和Looper来满足线程间的通信。 Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。 1)Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的Me
阅读全文
摘要:原文地址Android面试题-onCreate源码都没看过,怎好意思说自己做android Activity扮演了一个界面展示的角色,堪称四大组件之首,onCreate是Activity的执行入口,都不知道入口到底干了嘛,还学什么android,所以本文会从源码的角度对其进行分析。 熟悉源码的会发现
阅读全文
摘要:问:线程池的启动策略 线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。 当调用execute()方法添加一个任务时,线程池会做如下判断 1)如果正在运行的线程数量小于corePoolSize,那么马上创建线程运行这个任务 2)当一个线
阅读全文
摘要:原文地址腾讯QQ第三方登录的实现原理? Oauth当中的角色: 1.Service Provider(服务提供方): 服务提供方通常是网站,在这些网站当中存储着一些受限制的资源,如照片、视频、联系人列表等。这些网站通常使用用户名和密码来确认用户的身份。比如新浪微博的开放平台就是Service Pro
阅读全文
摘要:问:为什么service里面startActivity抛异常,activity不会? No1: 启动activity有两种形式: 1)直接调用Context类的startActivity方法;这种方式启动的Activity没有Activity栈,因此不能以standard方式启动,必须加上FLAG_
阅读全文
摘要:接上篇《android开发艺术探索》读书笔记(十四)--JNI和NDK编程 No1: 如果<include>制定了这个id属性,同时被包含的布局文件的根元素也制定了id属性,那么以<include>指定的id属性为准 No2: 绘制优化 1)onDraw中不要创建新的局部对象 2)onDraw方法中
阅读全文
摘要:接上篇《android开发艺术探索》读书笔记(十三)--综合技术 No1: Java JNI--Java Native Interface(java本地接口),它是为了方便java调用C、C++等本地代码锁封装的一层接口。 No2: NDK是Android所提供的一个工具集合,通过NDK可以在And
阅读全文
摘要:接上篇《android开发艺术探索》读书笔记(十二)--Bitmap的加载和Cache No1: 使用CrashHandler来获取应用的crash信息 No2: 在Android中单个dex文件所能够包含的最大方法数为65536,这包含Android FrameWork、依赖的jar包以及应用本身
阅读全文
摘要:接上篇《android开发艺术探索》读书笔记(十一)--Android的线程和线程池 No1: 目前比较常用的缓存策略是LruCache和DiskLruCache,LruCache常被用作内存缓存,DiskLruCache常被用作存储设备缓存。 Lru是Least Recently Used的缩写,
阅读全文
摘要:接上篇《android开发艺术探索》读书笔记(十)--Android的消息机制 No1: 在Android中可以扮演线程角色的有很多,比如AsyncTask、IntentService、HandlerThread。 AsyncTask底层封装了线程池和Handler,主要是为了方便开发者在子线程中更
阅读全文
摘要:构造方法 参数意义: coreProolSize:线程池核心线程数 maximumPoolSize:线程池所能容纳的最大线程数 keepAliveTime:非核心线程闲置时的超时时长,超过这个时长,非核心线程就会被回收。当ThreadPoolExecutor的allowCoreThreadTimeO
阅读全文
摘要:接上篇《android开发艺术探索》读书笔记(九)--四大组件 No1: 消息队列MessageQueue的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息列表,因为单链表在插入和删除上比较有优势 No2: ThreadLocal可以在不同的线程中互不干扰地存储并提供数据,通过Thr
阅读全文
摘要:接上篇《android开发艺术探索》读书笔记(八)--WindowManager No1: 四大组件除了BroadcastReceiver,其他三种组件都必须在AndroidManifest中注册。 在调用方式上,除了ContentProvider,其他三种组件都需要借助Intent。 No2: A
阅读全文
摘要:ContentProvider启动过程(通过query方法触发) ContentProvider.acquireProvider--> ApplicationContentResolver.acquireProvider--> ActivityThread.acquireProvider--> Ac
阅读全文
摘要:动态注册过程: ContextWrapper.registerReceiver--> ContextImpl.registerReceiver--> ContextImpl.registerReceiverInternal--> ActivityManagerNative.getDefault().
阅读全文
摘要:重写webview内的方法 原文地址Android webView拦截url
阅读全文