![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 68
thermosHeng
这个作者很懒,什么都没留下…
展开
-
Activity的启动流程
很多做应用的开发者其实并不了解Activity的启动流程,但经常面试的时候面试官又喜欢问一些framework层相关的问题,并且在实际开发中可以帮你定位问题的原因,所以在这里就学习下Activity启动流程吧。 这里结合网上的资料和自己的理解画了一幅图: 从图中大概的看出分为4个部分:Launcher(或者是其它进程的activity), AMS(ActivityManagerServi原创 2017-05-17 16:41:53 · 497 阅读 · 0 评论 -
Camera app 分析(四)预览与滤镜
Camera 预览有多种方式,如: 第一种方案 :SurfaceView + SurfaceHolder; 第二种方案 :GlSurfaceView + SurfaceTexture; 第三种方案 :TextureView + SurfaceTexture;这3种显示的方法对比可以参考以下对比: http://blog.csdn.net/jinzhuojun/article/detai原创 2017-08-09 09:46:26 · 694 阅读 · 0 评论 -
android 渲染机制简介
android 的渲染机制由以下部分组成: app (应用层绘制到缓存区) SurfaceFlinger (把缓存区数据渲染到屏幕) SharedClient (匿名共享内存)其中 SurfaceFlinger 服务运行在Android系统的System进程中,它负责管理Android系统的帧缓冲区(Frame Buffer),Android应用程序为了能够将自己的UI绘制在系统的帧缓冲区上,原创 2017-07-20 21:36:50 · 571 阅读 · 0 评论 -
自定义 view 一 (measure)
想要画出自定义的 view 必须先计算出它的宽高,宽高确定后才能进行后续的步骤,measure 分为 viewgroup 和 view 的 measure, viewgroup 其实也是继承于 view, 相比于 view ,它多了测量子 view 的步骤;首先我们需要知道 MeasureSpec 这个东西是干嘛的,它保存了两个数据,measureMode 和 measureSizemeasureM原创 2017-07-20 11:19:20 · 264 阅读 · 0 评论 -
多进程导致 Application 多次执行的问题研究
在项目中我们有时会用到多进程,需要在 AndroidManifest 里进行声明 : <activity android:name=".RemoteActivity" android:process=":remote"/>启动这个 Activity 后,你的应用就有了两个进程,这时就有问题了,Application 类的生命周期也调用了两原创 2017-07-13 16:55:49 · 1324 阅读 · 0 评论 -
Camera app 分析(三)拍照流程
拍照过程: 首先来看下拍照按键的点击按钮事件:ShutterButton.java protected void drawableStateChanged() { super.drawableStateChanged(); final boolean pressed = isPressed(); if (pressed != mOldPress原创 2017-06-23 14:56:16 · 742 阅读 · 0 评论 -
Camera app 分析(二)打开相机和预览过程
预览相机必须要开启相机,来看下这个开启的流程;PhotoModule.java // 在 PhotoModule 初始化的时候开启打开相机线程 public void init(CameraActivity activity, View parent) { if (mOpenCameraThread == null) { mOpenCameraT原创 2017-06-23 09:57:41 · 1216 阅读 · 0 评论 -
Camera app 分析(一)
由于参与了 Camera 项目的开发工作,所以需要对原项目代码需要有个详细的了解,在这里先从app的入口做一个整体的分析,让日后的新需求的添加和bug修复有一个比较好的基础。在这里以高通修改的Camera app (SnapdragonCamera ) 做为研究的对象 。研究一款应用应该从这款应用的 AndroidManifest.xml文件开始,以下简略了部分代码: <application原创 2017-06-16 18:20:37 · 1684 阅读 · 0 评论 -
Android触摸事件传递机制
自定义view时经常会碰见触摸事件传递方面的问题,所以需要清楚里面的机制才能处理好相关的问题。Android里一次完整的事件传递主要有三个阶段,分别是分发(dispatch)、拦截(intercept)和消费;其中activity里有:dispatchTouchEvent 和 onTouchEvent; viewGroup里有:dispatchTouchEvent、onInterceptTouch原创 2017-06-04 14:13:18 · 243 阅读 · 0 评论 -
相机预览使用帧缓存对象(FBO)
在原先的相机应用中对相机预览处理是通过 OPENGL 直接读取 OES Texture 数据进行滤镜和显示,这样做的缺点是效率低, 由于 OES Texture 是外部纹理,直接读取的话会增加了GPU取数据的时间,若进行一些运算密集的算法例如高斯滤波,每次都会到外部纹理取数据,这样则会造成明显的卡顿; 解决办法是利用帧缓存把外部纹理渲染到关联的二维纹理,再对二维纹理进行处理,这样显示的效率才会高原创 2017-10-12 09:55:31 · 1461 阅读 · 2 评论