android framework
文章平均质量分 85
红-旺永福
我的架构师之路!!
展开
-
架构师之路--让代码和血液相融!!
想了想,感觉标题改为“人码合一”也很贴切!昨天中午乱看,又翻出来杰克逊的视频了,吃完饭网上查查,为什么杰克逊的舞蹈这么优秀?查到网上一位朋友阐述了自己的分析,因为杰克逊对每一个动作都反复练习,精雕细琢,力求达到与人合一的境界。达到这样的境地,听到某段音乐,或者看到某段景象,非常自然的就想到应该用哪一个动作!我们仔细的想想,这是什么境界??真的不可思议!今天早晨,出了地铁站,一片阳光明媚,听着最最经典的dangerous的mv,脚步也不由自主的合上拍了,坐地铁看了一路杰克逊的mv...原创 2021-06-11 00:06:11 · 302 阅读 · 1 评论 -
架构师之路--状态模式
目录介绍定义使用场景代码实现介绍 状态模式中的行为是由状态来决定的,不同的状态下有不同的行为,状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样,状态模式的行为是平行的,不可替换的,策略模式的行为是彼此独立、可相互替换的,用一句来描述,状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类,状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。定义 当一个对象的内在状态改变时允许改变其行为,这个对象...原创 2021-01-24 21:18:07 · 217 阅读 · 0 评论 -
架构师之路--策略模式
介绍 在软件开发中经常遇到这样的情况:实现某一个功能可以有多种算法或者策略,我们根据实际情况可以选择不同的算法或者策略来完成该功能。例如,排序算法,可以使用插入排序、归并排序、冒泡排序等。 针对这种情况,一种常规的方法是将多种算法写在一个类中,例如,需要提供多种排序算法,可以将这些算法写到一个类中,每一个方法对应一个具体排序算法,或者通过if/else进行区分,这样明显不符合开闭原则,如果有一些功能扩展,我们只能在原始的代码基础上进行修改;也不符合单一职责原则。 如果我们...原创 2021-01-24 20:48:34 · 180 阅读 · 0 评论 -
架构师之路--工厂方法模式
目录介绍定义使用场景代码实现介绍 工厂方法模式是创建型设计模式之一,它是一种结构简单的模式,其在我们平时的开发中应用非广泛,比如Activity中各个生命周期的方法,以onCreate为例,它就可以看作是一个工厂方法,我们在其中可以构造我们的View并通过setContentView返回给framework处理。定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景 在任何需要生成复杂对象的地方,都可以使用工厂方法模式,复杂对象适合...原创 2021-01-24 18:51:20 · 194 阅读 · 0 评论 -
架构师之路--原型模式
介绍 Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程,该模式是为了将构建复杂对象的过程和它的部件解耗,使得构建过程和部件的表示隔离开来。定义 将一个复杂对象的构建与它的表示分离...原创 2021-01-24 18:35:30 · 259 阅读 · 0 评论 -
架构师之路--单例模式
介绍 本节我们来看看设计模式中使用场景最多的单例模式,网上也有很多的知识,各种单例模式的写法,对于我们日常的工作,已经足够了。单例模式的类必须保证该模式的对象只有一个实例的存在,许多时候,系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为,比如在一个应用中,应该只有一个ImageLoader实例,这个ImageLoader中又含有线程池、缓存系统、网络请求,很消耗资源,因此没有理由让它构造多个对象,这种不能自由构造对象的情况,就是单例模式的使用场景。定义 确保某一个类只...原创 2021-01-17 19:42:10 · 378 阅读 · 4 评论 -
Opengl ES系列学习--FBO拷贝texture实现滤镜效果
Opengl ES系列学习--FBO实现滤镜效果本节我们原创 2020-11-08 21:00:15 · 1089 阅读 · 0 评论 -
Opengl ES系列学习--glDrawElements API使用
本节我们来看一下glDrawElementsAPI的使用,对应的代码是OpenGL\learn\src\main\java\com\opengl\learn\GlDrawElementsRender.java文件。所有实例均有提供源码,下载地址:Opengl ES Source Code。API中文说明:GLES2.0中文API-glDrawElements...原创 2020-03-11 23:47:01 · 1486 阅读 · 0 评论 -
Opengl ES系列学习--glDrawArrays API使用
本节我们来看一下glDrawArrays API的使用,我们就讲一些常量的知识,生僻少用的就不看了。 所有实例均有提供源码,下载地址:Opengl ES Source Code。 API中文说明:GLES2.0中文API-glDrawArrays。 Opengl提供的两类绘制API就是glDrawArrays、glDrawElements,绘制三角形序...原创 2020-03-10 00:16:37 · 1334 阅读 · 0 评论 -
启示(信息绝对真实,无意者请勿骚扰!!!)
大家好,我们公司是专门从事Android手机研发生产的,行业龙头,因公司业务扩大,一直在要人,首选Camera方向,包括Camera APP、Qualcomm Camera HAL、MTK Camera HAL均可,其他方向也有大量需求,薪资根据能力而定,绝对优于行业水平,微=!@#=信(1==&==5!!&!!3;&;1【&】0{&}7/&...原创 2019-11-17 10:55:30 · 852 阅读 · 15 评论 -
Opengl ES系列学习--点亮世界
本节我们在上一节的基础上继续添加光照,我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第13章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的lightingModule就是我们本节要分析的目标,先看下本节最终实现的结果。 在上一节的基础上,把天空盒换成了一个夜晚的天空盒,同时增加了光照,三个粒...原创 2019-04-29 18:17:13 · 413 阅读 · 0 评论 -
Opengl ES系列学习--序
之前一直都想好好学习一下Opengl ES,因为自己想往图形界面处理方向集中发展,这样的目标对Opengl ES的要求也是不能少的,推荐两本书:《OpenGL ES应用开发实践指南 Android卷》和《OPENGL ES 3.0编程指南中文原书第2版》,CSDN上也有其他朋友分享的,但是都要四五十个积分,有点抠门了,另外自己把两本书的代码全部整理了下,Github下载链接:Opengl...原创 2019-04-19 11:25:58 · 549 阅读 · 3 评论 -
启示(帮朋友发布的,信息绝对真实,无意者请勿骚扰!!!)
大家好,我朋友是一个准上市公司HR,公司在东莞松山湖,公司1300人,技术研发人员500多人,软件工程师150人左右,年产值12亿左右,产品涉及汽车电子,运动科技,宠物科技。业务量稳定,每年增长60%以上,现在招BSP工程师、MCU工程师,安卓工程师(APP、中间件)、安卓组长、安卓经理,架构师,五天弹性工作制,五险一金足额购买,所有职位食宿高质量解决(单人单间花园小区,自助餐),每年发...原创 2019-04-28 16:56:43 · 691 阅读 · 0 评论 -
Opengl ES系列学习--增加地形
本节我们在上一节的基础上继续添加地形图功能,我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第12章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的heightmapModule就是我们本节要分析的目标,先看下本节最终实现的结果。 可以看到,地形图中有高有低,是用绿色来表示的,最接近底部的颜...原创 2019-04-25 18:12:47 · 606 阅读 · 0 评论 -
Android 7.0修改PMS逻辑添加权限白名单
今天有任务安排需要实现给任何一个应用在不动态申请权限的情况下,实现权限赋予,大体知道应用权限的赋予逻辑是在PMS中,于是大概研究了下,最终的手段就是在install安装时,就把应用程序AndroidManifest中请求的权限赋予它,但是时间有限,跟踪了下应用安装的逻辑,往上走还是非常复杂,就暂且放下了。 解决方案: 在PMS的grantPermissionsLPw方法...原创 2018-09-29 19:40:54 · 3213 阅读 · 0 评论 -
Android 7.0系统源码下添加共享库
今天的任务从早上搞到现在,才算完成,本来以为比较简单,就是出一个Demo,将实际业务的逻辑封装成so库,放在系统层,对上层不暴露任何东西,中间就一层JNI调用,原本以为很简单,但是由于自己的一个坏习惯,折腾了一天。将处理过程详细记录下来,同时吸取教训,也希望能给大家带来帮助。 JNI的封装很简单,代码就不上了,在Android7.0源码目录下添加共享库的过程,也有其他网友提到...原创 2018-09-20 22:41:03 · 4798 阅读 · 0 评论 -
Android 8.0系统源码分析--openCamera(HAL)启动过程源码分析
前面我们详细分析了从应用层调用CameraManager的openCamera的方法来打开相机的逻辑,上次的分析我们来到了CameraServer进程当中,但是还没有真正看到open操作设备节点来实现真正打开的逻辑,遗留的问题也就是从frameworks\av\services\camera\libcameraservice\device3\Camera3Device.cpp文件中的st...原创 2018-05-13 09:59:40 · 8020 阅读 · 3 评论 -
Android 8.0系统源码分析--相机createCaptureSession创建过程源码分析
上一次我们详细分析了openCamera启动过程的源码,从CameraServer进程创建了很多对象,比如CameraDeviceClient、Camera3Device、FrameProcessorBase,而真正打开相机还是在驱动层中上电后才完成的,有时候真想把公司的系统组件和芯片组件的源码拷回来,这样就能看到完整的过程了,但是还是不敢,哈哈哈!华为手机是仿照高通,和CameraSe...原创 2018-02-25 20:53:01 · 16095 阅读 · 12 评论 -
Opengl ES系列学习--用粒子增添趣味
我们本节开始分析《OpenGL ES应用开发实践指南 Android卷》书中第10章中的粒子系统的实现原理,搞清楚其中的代码逻辑,代码下载请点击:Opengl ES Source Code,该Git库中的particlesModule就是我们本节要分析的目标,先看下本节最终实现的结果。 最终运行在真机上的效果非常炫,三个红绿蓝粒子系统不断的发射新的粒子,所有粒子由于重力...原创 2019-04-19 20:20:06 · 534 阅读 · 0 评论 -
Opengl ES系列学习--增加天空盒
本节我们在上一节的基础上来分析一下天空盒的实现。我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第11章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的skyboxModule就是我们本节要分析的目标,先看下本节最终实现的结果,CSDN对GIF动画文件的大小有限制,所以只能录制三个文件来看效果。...原创 2019-04-22 18:15:50 · 1086 阅读 · 0 评论 -
Opengl ES系列学习--你好,三角形
看完了Opengl ES 2.0,我们再来看一下3.0的内容,PDF下载地址:OPENGL ES 3.0编程指南 原书第2版(中文版),3.0原书中的作者应该是搞C++开发的,所有的实现都是基于C++,当然也有Java语言的,原书所有代码下载地址:OpenGL ES 3.0中文版所有示例代码,我自己只是将Java语言整理了一下。我们还是对着书,一节一节的分析所有的内容。本节要看的就是该书...原创 2019-05-05 11:45:29 · 449 阅读 · 0 评论 -
Vsync垂直同步信号分发和SurfaceFlinger响应执行渲染流程分析(一)
自己平时的学习积累,怕忘记,方便查阅,如果能给大家带来帮助,那就更好了,谢谢!原创 2016-10-04 13:01:02 · 2516 阅读 · 0 评论 -
Android 8.0替换framework.jar和services.jar
Android一直在不断的演进,系统层实现的逻辑也不断的在变化,所以我们还是要不断的学习、跟进,否则一些技术知识就会过时。之前搞系统开发时,要验证framework中的逻辑,直接替换framework.jar,自己的博客也记录了修改方法:编译framework.jar,并验证自己的修改。 现在针对Android 8.0还使用之前的验证方式,发现不生效,原来framework编...原创 2019-09-09 23:33:46 · 7431 阅读 · 1 评论 -
Android 8.0系统源码分析--Camera processCaptureResult结果回传源码分析
相机,从上到下概览一下,真是太大了,上面的APP->Framework->CameraServer->CameraHAL,HAL进程中Pipeline、接各种算法的Node、再往下的ISP、3A、Driver,真是太大了,想把它搞懂真不是个简单的事情。不过我们奔着要把它搞懂的目标,一点点的啃,弄懂一点少一点,我们的功力也在不断的前进中一步步的增强。 本节,我...原创 2019-06-16 21:20:38 · 7202 阅读 · 9 评论 -
Android 8.0系统源码分析--Camera RequestThread预览循环源码分析
本节我们来看一下Camera预览是如何循环的。我自己使用的Android8.0的系统源码是通过百度云盘分享的,大家可从Android 8.0系统源码分析--开篇中下载,百度云盘的下载链接和密码都有。 大家使用API2开发相机APP时都清楚,我们起预览时调用CameraCaptureSession类的setRepeatingRequest方法,该方法的实现是由CameraCap...原创 2019-06-16 15:36:19 · 6404 阅读 · 10 评论 -
Android手机对手机adb环境搭建
公司项目需求,要用Nexus 5X手机作为测试工具,连接Linux设备,然后在手机上执行ps、find、grep、cat等Linux系统命令查询Linux设备上的进程、日志等操作,通过这两句话,不知道大家有没有理解清楚需求,一开始让我搞,直接蒙了,从来执行adb命令都是在电脑上,因为电脑可以安装SDK自带的adb.exe,用它才能连接手机,还从来没搞过在手机上执行adb,但是要实现这样的...原创 2019-05-14 16:44:28 · 7388 阅读 · 1 评论 -
Opengl ES系列学习--顶点着色器
本节我们继续来看一下《OPENGL ES 3.0编程指南 原书第2版(中文版)》书中第8章的内容,PDF下载地址:OPENGL ES 3.0编程指南 原书第2版(中文版),代码下载地址:Opengl ES Source Code。该书中好像没有对Demo的代码进行讲解,全书的重点全部都集中在Opengl ES本身,而实现出来的实例代码讲解的很少,作为初学者,理解起来确实比较费劲,这也是我...原创 2019-05-07 14:57:15 · 741 阅读 · 0 评论 -
Opengl ES系列学习--顶点属性、顶点数组和缓冲区对象
本节我们继续来看一下《OPENGL ES 3.0编程指南 原书第2版(中文版)》书中第6章的内容,PDF下载地址:OPENGL ES 3.0编程指南 原书第2版(中文版),代码下载地址:Opengl ES Source Code。本书中第3、4、5章讲解的是Opengl ES着色器语言的语法知识,没有实例,不过这些语法也是我们掌握Opengl ES的硬功底,万丈高楼平地起,只有基础扎实,...原创 2019-05-06 15:09:50 · 1000 阅读 · 0 评论 -
Opengl ES系列学习--创建动态壁纸
本节我们在上一节的基础上继续完成动态壁纸功能,我们要分析的目标就是《OpenGL ES应用开发实践指南 Android卷》书中第14章实现的最终的结果,代码下载请点击:Opengl ES Source Code,该Git库中的livewallpaperModule就是我们本节要分析的目标,先看下本节最终实现的结果。 最终的效果,就是把我们上一节实现的结果作为...原创 2019-04-30 10:59:57 · 766 阅读 · 2 评论 -
Android 8.0系统源码分析--openCamera启动过程源码分析
今年一进公司就开始搞相机开发,一直是在搞相机应用层,不过自己的学习心一直没停,闲暇之余就研究一下相机的framework、HAL层的东西,平时工作中碰到的和自己接触到的,相机中最复杂的就是预览了,有了一些体会也不想放下,所以决定写一系列关于Android相机的博客,把自己学习到的东西记录下来。 说起Android相机的东西,从应用层的角度来看,基本就是四个重要的节点了:openCame原创 2018-01-28 17:55:05 · 14669 阅读 · 6 评论 -
Android 8.0系统源码分析--startService启动过程源码分析
作过android应用开发的同事都非常清楚,android提供了四个组件Activity、Service、BroastcastReceiver、ContentProvider,分别都有不同的作用,这也给我们的应用开发提供了非常大的帮助,因为这四大组件本身就已经处理了很多的工作,我们只需要使用它就能达到成我们的目的。今天就来看一下Service这个组件,其他三个我们就不详细分析了,基本上都是相同的道原创 2018-01-27 22:53:33 · 1971 阅读 · 0 评论 -
Android动画全解析(三)
上一节课,我们以一个scale为例,比较完整的分析了整个动画的实现过程,但是Android动画全解析这节课还没完,我们还要继续分析一些更为复杂的动画,再一层深入了解动画的原理,github上搜一下,好东西一大堆,也有好多朋友总结下来了,我这里把他们的链接拿过来,大家也可以直接用,非常方便。 Android github上开源项目、酷炫的交互动画和视觉效果地址集合 分享在git原创 2016-11-19 17:04:27 · 744 阅读 · 0 评论 -
Android动画全解析(四)
Android动画全解析(四),完整的分析了Animator动画实现的全过程。原创 2016-12-01 17:50:59 · 632 阅读 · 0 评论 -
Android ContentProvider数据共享全解析
非常完整的ContentProvider文件共享的源码分析原创 2016-11-26 11:35:58 · 4118 阅读 · 1 评论 -
Android源码编译GC overhead limit exceeded. Try increasing heap size with java option '-Xmx<size>'
自己碰到问题的解决方案,希望能给大家带来帮助原创 2016-11-17 11:15:20 · 4014 阅读 · 0 评论 -
Android-onInterceptTouchEvent()和onTouchEvent()总结
Android-onInterceptTouchEvent()和onTouchEvent()总结转载 2016-11-28 18:14:54 · 395 阅读 · 0 评论 -
Android Choreographer源码分析
想系统性的学习一下android动画,但是在学习前,还是需要先了解Choreographer,这样才能更好的了解动画原创 2016-10-29 18:18:06 · 3686 阅读 · 3 评论 -
编译service.jar包,push替换,reboot重启后无法开机
自己处理问题单的过程中实际的操作,希望能给大家带来一些学习点原创 2016-10-19 17:42:11 · 6381 阅读 · 3 评论 -
从问题单处理了解Toast系统窗口显示、Activity窗口创建、WindowManagerService对系统窗口组织排布(二)
自己在问题单分析过程中了解到的,给大家一起分享一下。原创 2016-09-28 23:49:54 · 639 阅读 · 0 评论 -
JNI字段描述符“([Ljava/lang/String;)V”
非常好的JNI字段描述说明转载 2016-10-26 14:46:50 · 2221 阅读 · 0 评论