Android成长之路
文章平均质量分 87
在技术日益更新的今天,学习能力体现的尤为重要,我们不是每个人都能成为全栈,但至少我们可以向着全栈,向着牛人的方向前进,只要脚步不停,即是成长。
安静的Sunny
人生就是不断重复挖坑,跳坑,填坑的过程!
展开
-
你真的了解taskAffinity属性么?
在2019年,有安全研究员向Google官方提交了一个利用taskAffinity的漏洞,后面被命名为StandHogg。最近在2020年5月份又公布了StandHogg 2.0漏洞。StandHogg 2.0 隐藏的更深,一般很难发现,甚至都不用设置taskAffinity就可以实现。目前官方已经发布了Android 10.0系统补丁包,有条件的可以对系统进行升级。有兴趣的同学可以看下这篇文章:https://www.xda-developers.com/strandhogg-2-0-android-vu原创 2020-08-23 23:21:20 · 5677 阅读 · 5 评论 -
Android Annotation注解、RxJava、开源网络库
以下知识点Demo源码已经上传到github:https://github.com/SunnyLy/ActivityLifeDemo一、RxJava响应式编程,流式控制。观察者消费者模式。分析的好的博文:https://www.jianshu.com/p/ceb48ed8719d目前已经更新到RxJava3.0:RxJava2.0 VS RxJava1.0:主要是RxJava采用背压策略,解决了RxJava1.0中因为被观察者(Observable)发送事件速度 与观察者(Observer).原创 2020-05-23 14:18:03 · 299 阅读 · 0 评论 -
【最新Android高级面试知识点--事件分发、Binder机制】
【最新Android高级面试知识点干货分享(六)】转载请注明出处!九、Android事件分发机制事件分发机制是个必考点,网上也有很多很好的文章,在复习的过程中,建议按照源码自己动手动画画,下图就是我自己整理的,有不对或不完整的地方,欢迎留言,我将确认后更改更新。注意:Android事件从ACTION_DOWN开始往下传,依次ACTION_MOVE---->ACTION_UP,如...原创 2020-05-18 10:04:53 · 581 阅读 · 0 评论 -
【最新Android高级面试知识点--绘图机制】
【最新Android高级面试知识点干货分享(五)】转载请注明出处!六、Android自定义View更深入一点的,应该了解一下WMS,以及View与Window、Activity之间是怎么关联,怎么添加上去的。针对View,还得了解它的测量模式与测量规范。延伸:从源码角度分析View的绘制流程(onAttach–onMeasure—onLayout—onDraw)针对Android...原创 2020-05-18 10:04:06 · 930 阅读 · 0 评论 -
【最新Android高级面试知识点--四大组件】
【最新Android高级面试知识点干货分享(四)】转载请注明出处!三、Service/IntentServiceService作为四大组件之一,也是面试官喜欢问的。一般包括:启动方式、生命周期、Binder机制、保活以及唤醒等。启动方式:startService/bindService生命周期: onCreate--onStartCommand--onDestroy ...原创 2020-05-18 10:03:18 · 239 阅读 · 0 评论 -
【最新Android高级面试知识点--Activity启动流程】
【最新Android高级面试知识点干货分享(三)】前面用了三篇来整理分享了我的java笔记。接下来从第四篇开始,我将正式开启我的Android面试笔记分享。《Android篇》一、Activity启动流程这是我自己绘制的时序图,从Launcher开始。可能会存在不准确或看不懂的地方;因此,也建议读者自己根据源码画一下图,加深理解记忆。二、Activity任务栈及启动模式...原创 2020-05-18 10:02:39 · 1093 阅读 · 0 评论 -
【最新Android高级面试知识点---JVM内存模型】
【最新Android高级面试知识点干货分享(二)】七、Java运行时数据区 与 JVM内存模型优秀博文推荐:https://www.cnblogs.com/czwbig/p/11127124.html$7.1、Java运行时数据区在JDK8以前,Java运行时数据区域具体分为以下五块:程序计数器(程序寄存器/PC寄存器Program Count Register):每个新开的线程都会有...原创 2020-05-18 10:01:27 · 824 阅读 · 0 评论 -
【最新Android高级面试之Java集合】
接上一篇四、Java集合(List、Set、Queue、Map)Java集合体系是一个树状,如果按照类似OSI网络模型来看的话,整个Java集合就是应用层,而底层的数组就是TCP/IP层。而它也是全网各面试题中出现概率最高的。对于集合,有几个核心知识点是需要了解的:底层数据结构、扩容机制、效率、线程案例等。整个Java集合大致分为两类:Collection接口与Map接口下图来源于...原创 2020-05-18 09:59:53 · 524 阅读 · 0 评论 -
【最新Android高级面试知识点--Java基础】
2020年开年不利,大家都过得不容易。我们大家都辛苦了!通过这次的疫情,使我更加直观也更进一步的理解了,何谓“命运共同体”。如果你现在有工作,那么恭喜你。你要做的就是少点抱怨,更加努力的工作,把工作做好,多存点钱。如果你正在找工作,那么我想说的是:不要急,选好自己心仪的行业,心仪的公司,好好准备面试,向它发起挑战。只要你真正努力了,真正问心无愧了,那么胜利终将属于你!!2020年And...原创 2020-05-18 09:58:52 · 286 阅读 · 0 评论 -
Hexo+GitHub创建网站
由于时间关系,我暂且只是把一些注意事项记一下,当作备忘录。其他的网上有blog,我贴出链接,大家自个儿去看就是了。注意事项:一、本地Hexo+Node.js环境搭建;二、GitHub与本机IP关联,及创建仓库,仓库名格式为:UserName.github.io三、配置hexo全局命令: cnpm install -g hexo配置全局的deployer-git: cnpm in原创 2016-11-26 14:59:42 · 386 阅读 · 0 评论 -
JavaScript初级篇(一)
前言由于目前H5被炒的火热以及公司目前项目中也用到H5页面的情况,不得不让我对目前从事的Android工作有点担忧,生怕哪天一不小心就被炒了。鉴于此,楼主我决心学习下H5了(程序员基本的Html都是知道的^_^).下面就让我们一起来学习吧!提纲1,JavaScript基本语法;2,JavaScript类定义;3,什么是ECMAScript及ECMAScript基础用法;4,WebApp附上原创 2016-06-21 14:46:11 · 540 阅读 · 0 评论 -
jQuery学习笔记(一)
jQuery 不是什么新的编程语言,只是一个封装了AJAX等的库,依赖它,我们可以更简单方便的实现JavaScript编程。jQuery简化了元素的查询方式以及事件处理方法。甚至有说法说jQuery是为事件处理特别设计的。一:jQuery库的依赖方式jQuery库有两种类型,一种是经过压缩的(Production version),看不到源码,一种是没有压缩的(Development versio原创 2017-01-18 20:05:35 · 474 阅读 · 1 评论 -
jQuery学习笔记(二)
重要学习札记jQuery结束动画stop()与stop(stopAll,goToEnd)方法;jQuery Chaining链操作;jQuery DOM/属性/CSS 操作;jQuery设置内容或属性的监听回调函数;jQuery 添加/删除元素;jQuery 中AJAX应用一、jQuery 结束动画结束动画的操作在很多业务场景都是很必需的,比如:当我点击一个Button的时候,某个块会原创 2017-01-19 19:51:38 · 394 阅读 · 1 评论 -
通信协议之:Http,Socket,UDP
最近在看《Java网络编程》,对于0基础的我来说,真是受益匪浅,从中学到了很多,使我对自己平时常用的网络操作等也有了进一步的了解。强烈建议同学们去看看这本书。一:Socket【基本用法】 都知道它被翻译为”套接字”,其使用方法如下:String host = "localhost";int port = 8080;try{Socket socket = new Socket(host,por原创 2016-12-28 19:56:55 · 667 阅读 · 0 评论 -
android中?attr/**与@drawable/**或@color/**等的区别及用法
前言今天在写一个Demo,研究主题的时候,遇到了【?attr/colorPrimary】这个用法,由于网上都是千篇一律的回答,所以我只能硬着头皮去看源码了,茶壶煮饺子,暂且记下来,作为备忘录吧。一、?attr/**这个Google把它叫做“预定义样式”,字面意思就是“预先定义好的样式”。也就是相当于给这个样式定义一个变量,随后是可以进行赋值的。用的最多的场景就是自定义控件了,比如我现在需要自定义一个原创 2017-09-11 20:38:14 · 2305 阅读 · 0 评论 -
OpenGLES Android篇零基础系列(一):OpenGLES2.x可渲染管道基本流程
转载请注明出处前言OpenGL ES是OpenGL的一个子集,是针对手机、PDA和游戏主机等嵌入式设备而设计的。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。 因此OpenGL ES作为第三方库被应用在android中。 到目前为止,OpenGL ES已经发展有了3个版本,OpenGL ES 1.0 , OpenGL ES原创 2016-07-12 19:17:03 · 7523 阅读 · 1 评论 -
OpenGLES Android篇零基础系列(二):OpenGL各坐标系及模型矩阵(ModelViewMatrix),投影矩阵(ProjectionMatrix)等的深入理解
上一篇我们粗略的介绍了下GLES20 中 GLSurfaceView以及Render接口的使用。 对于三角形顶点坐标的定义并没有做出注释,其实在官方的ApiDemo中,它也是赤裸裸的,一个注释都没有,且代码写得一点都不敢恭维,不知道那位同行现在是不是还在google里面。下面贴出一小段官方的ApiDemo中的代码,一起鉴赏鉴赏: private static final int FLOAT_SIZ原创 2016-07-13 16:17:17 · 16732 阅读 · 0 评论 -
OpenGLES Android篇零基础系列(三):OpenGL ES的渲染管道及VertexShader与FragmentShader
前言在前2篇文章中,我们都说到着色器,且在第二篇中正式说到,这着色器只能用在OpenGL ES2.x等可编程管道里面,而在OpenGL ES1.x是不能用的。但我们一直没有说这是为什么,两者有什么区别。那这篇我们就一起来学习下OpenGL ES中的渲染管道。正文管道,英文名叫Pipeline,相信用过FaceBook图片加载库的同学对这个管道并不陌生,因为SimpleImageDrawee里面也是用原创 2016-07-14 14:47:47 · 5461 阅读 · 0 评论 -
关于GLSurfaceView lockCanvas锁定画布的问题
注:由于最近一直在研究人脸识别,其中用到了GLSurfaceView,里面遇到了一个坑,一直没找到原因,现在终于找到了,权且做个备忘录。大家都应该知道,我们可以直接通过SurfaceView来锁定画布,在画布上面画自己想要的东西,完了,通过解锁画布,把内容渲染出来。可不知道为什么,在用GLSurfaceView是,调用lockCanvas()方法,死活不成功,报如下错误: 但是我如果自己写一个S原创 2016-10-17 10:26:02 · 3913 阅读 · 1 评论 -
漫说Android 中SurfaceView蕴含的美
相信大家对SurfaceView并不陌生,也相信大家一定有用它来做过视频播放等功能。但我今天要跟大伙分享的并不是如何利用SurfaceView来做视频播放,而是想与大伙一起来谈谈SurfaceView所蕴含的美,一种只有程序员才能读懂的美。SurfaceView作为View家族的一员,它的美是内在的,而这种内在的美又受View家族的熏陶。即继承了View的精神,但又与时俱进,不乏创新精神,标新立异,原创 2016-11-12 15:16:02 · 814 阅读 · 1 评论 -
OpenGLES Android篇零基础系列(五):GLSL着色器语言
本文转载至:http://www.tuicool.com/articles/qMfAfy一.概述GLSL ES是在GLSL(OpenGL着色器语言)的基础上,删除和简化了一部分功能后形成的,目标平台是消费电子产品和嵌入式设备,比如智能手机、游戏主机等等,ES版本主要降低了硬件功耗,减少了性能开销。二.基本语法规则大小写敏感语句末尾 必须 要有分号从main函数开始执行函数声明中 不能省略返回原创 2016-12-22 15:49:20 · 2620 阅读 · 0 评论 -
Android TTS(TextToSpeech)语音输出与RecognizerIntent语音识别
一、引言在《Android 4 高级编程(第3版)》第11章中,讲到了语音输出及语音识别。 对语音识别,公司项目中有用到,但是我们用的第三方的(讯飞),由于这块功能不是由我来做,所以也就没有花时间去看第三方是怎么接入的,只是粗略的扫了一下项目中这块的代码,没有难度。跟其它第三方API一样。二、正文1、TTS(TextToSpeech)TextToSpeech:在android speech包下,从原创 2016-03-05 23:31:16 · 3199 阅读 · 0 评论 -
Android View中onSave(),onRestore(),getWidth(),getMeasureWidth()方法解析
前言:今天花了点时间来研究View中的onSave(),onRestore(),getWidth(),getMeasureWidth()方法的作用与原理,在csdn上看到一篇写得很详细的文章。各位可以稳步去看看。 地址:http://blog.csdn.net/harvic880925/article/details/39080931 下面我文章姑且是记录下自己对这些方法的理解一、onLayou原创 2015-12-24 20:17:56 · 1068 阅读 · 0 评论 -
Android MVC、MVP、MVVM模式思想的应用
一、前言记得当时接触到的第一个架构就是MVC。由于经验不足,最开始一直不知道这个是做什么的,有什么用。直到后面慢慢的才懂得原来是一种开发模式,目的就是解藕,复用等。 去年的某一天,在推酷上读到一篇博文,第一次了解到MVP模式。从字里行间可以感受到作者对于此模式的崇拜,以及内心的欢喜。当时没有仔细的去写demo研究它,只是大概的看了下它跟MVC的区别。感觉还是很不错。现在终于有时间来仔细的去研究一下原创 2016-03-09 16:11:19 · 727 阅读 · 0 评论 -
Fresco 源码浅析
前言:fresco是facebook主导的一个开源图片缓存库,从它提供的示例程序comparison来看,fresco貌似比其他的几个目前android主流的图片缓存库(glide,picasso,uil等)更快更节省内存。接下来就看看它到底是如何做到的。一、背景: 1:lru与SoftReference那些年的爱恨情仇:很久很久以前,android的内存缓存还用原创 2016-03-31 11:37:09 · 1946 阅读 · 1 评论 -
Android关于LinearLayout中onDraw(Canvas canvas)方法不执行问题
前言在Android实际项目开发中,由于需求,我们可能会自定义各种控件,最常用的就是extends View或extends LinearLayout等。然后再复写onDraw()方法。正文1,最开始自定义XXView enxtends View ,然后重写onDraw()方法, 这样只要我们实例化一个XXView对象时,onDraw()方法就会调用。 但当我自定义另外一个View extend原创 2016-04-11 13:51:06 · 5080 阅读 · 4 评论