自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 单元测试框架JUnit 4.12源码分析

Junit4.12框架源码学习

2023-02-05 17:11:54 1744 3

原创 UAST(统一抽象语法树)概念解释

Lint系列学习笔记之 UAST 概念理解

2022-07-02 17:52:10 1535

原创 Detector.UastScanner源码与JavaPsiScanner源码(Lint)

Detector.UastScanner源码官方网址:https://javadoc.io/doc/com.android.tools.lint/lint-api/latest/com/android/tools/lint/detector/api/Detector.UastScanner.htmljavadoc只提供到了25.5.0这个版本,更新的需要在代码仓库中引入才能看到SourceCodeScanner。由于API转变是从JavaScanner转换到JavaPsiScanner再到Source

2021-10-31 07:41:01 1769

原创 荐书:15道题测试你的Java水平

书籍推荐:Java深入解析,透析Java本质的36个问题;先回答15个问题,测测你的java水平~

2020-06-15 15:54:18 361

原创 [整理]执行引擎,编译器,概念理解

最近又把《深入理解Java虚拟机》捡起来读,从引言第一章看对后续章节的总结,看到两个概念不理解。一个是执行引擎,一个是编译器。格物致知,扔到google里去搜一下,看维基百科的概念定义。消化理解一下。这些基本概念,应该是计算机必修课程《编译原理》里的,有空需要翻一翻编译原理了。执行引擎编译器百度百科:编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目...

2020-02-18 16:17:08 504

原创 [整理]Mac安装Meld,并使用Meld作为git diff tool的工具

在mac上安装Meld,给Android Studio使用为git diff的工具。Ubuntu中Meld很好配置,mac中没找到dmg包,在这篇博客中看到的下载的办法:https://blog.csdn.net/zxm317122667/article/details/70761668brew install Caskroom/cask/xquartzbrew install pygtk...

2020-02-04 09:40:44 2508 2

原创 Context.startForegroundService() did not then call Service.startForeground的解决方案

Your app will crash if you call Context.startForegroundService(…) and then call Context.stopService(…) before Service.startForeground(…) is called.Some suggestions://千年难解的老bug,搜索了一下如下文章分析的不错stacko...

2020-01-21 16:54:17 6991 2

原创 “谷歌开发者”公众号Flutter合辑

官网当然是最好的了解方式,除了官网,官方公众号的介绍也不错。Flutter FAQ 第一期: 介绍篇问题 1:Flutter 是什么?Flutter 是一套Google 的高效的跨平台免费开源 SDK,用于在极短时间内在 Android 和 iOS 平台上创建高质量的原生体验。Flutter 可以和既有代码相容,世界各地的很多开发者和组织都在使用它,并且它是免费和开源的。When 1.0...

2019-03-26 12:36:34 592

原创 [占坑]应用内存优化

最近参与的项目中内存占用太多,经常跑monkey的时候出现OOM.通过Android Studio的Profile工具查看Memory,点击dump按钮可以看到堆转储的列表显示,却不知道从何处分析起。先暂存几篇实践性的文章,细读一下,有实践效果后再补充本文。1.【腾讯质量开放平台】我这样减少了26.5M Java内存!2017/12/21 2.【掘金】Android性能优化:全面带你了解 ...

2018-11-13 17:50:45 354

原创 没有愿景的决策是机会主义

连岳说,人有两种生存方式,一是随机摆动,二是有目的的前进

2018-10-31 19:52:22 297

转载 [整理]队列

Java集合类(5)——Queue接口及其实现类 PriorityQueue实现类,Deque,LinkedList并发队列-有界阻塞队列ArrayBlockingQueue原理探究 offer,put,take,poll,peek,sizejava数据结构与算法之(Queue)队列设计与实现 抽象数据类型,顺序,链式,双链表....

2018-08-23 16:10:33 352

转载 [zz]Difference between ContentUris.withAppendedId and Uri.buildUpon().appendPath

from stackoverflowhttps://stackoverflow.com/questions/36372392/difference-between-contenturis-withappendedid-and-uri-buildupon-appendpath

2018-08-23 15:59:23 801

转载 笔记:(四) 线程、多线程和线程池

java基础+android基础面试题整理: 原文地址:https://www.jianshu.com/p/c70989bd5f29解答整理:(四) 线程、多线程和线程池问:开启线程的三种方式? 答:1、定义一个类继承Thread类,覆盖Thread类的run方法;run方法中的代码是线程执行体;然后调用线程对象的start方法; 2、定义一个类实现Runnable接口,注意...

2018-03-25 11:14:59 443

原创 【汇总】Java 7, 8 ,9 , 10的新增特性

Java 7的那些语法糖http://blog.csdn.net/chenleixing/article/details/47802653 1.switch可以接受string类型而不像以前仅仅是int; 2.异常catch可以一次处理完而不像以前一层层的surround; 3.泛型类实例化也不用繁琐的将泛型声明再写一遍; 4.文件读写 会自动关闭流而不像以前那样需要...

2018-03-21 22:03:09 2804

转载 转载一篇详细的分析:Android View绘制和显示原理简介

原文链接: Android View绘制和显示原理简介,2016-10-14图片没有粘贴过来,还是去原链接看吧。现在越来越多的应用开始重视流畅度方面的测试,了解Android应用程序是如何在屏幕上显示的则是基础中的基础,就让我们一起看看小小屏幕中大大的学问。这也是下篇文章——《Android应用流畅度测试分析》的基础。首先,用一句话来概括一下Android应用程序显示的过程:And...

2018-03-20 13:56:42 463

原创 【整理】HTTP2.0, HTTP1.1, HTTP1.0的特点,HTTPS vs. HTTP

HTTP2.0, HTTP1.1, HTTP1.0的特点,HTTPS vs. HTTPHTTP2.0 相比于 HTTP1.X 大幅度的提升了web性能。 在与HTTP/1.1完全语义兼容的基础上,进一步减少了网络延迟。 示范例子:https://http2.akamai.com/demo 多路复用(Multiplexing) 多路复用允许同时通过单一的HTTP/2连接发起多重的请求...

2018-03-15 21:47:51 1950

原创 [整理]git rebase的用法

使用git版本管理工具,必问git rebase的用法,但之前项目组人数5人,一直使用的是git pull,git commit 和git push,几乎没有用git rebase来变基,减少难看的merge 类型的commit。 最近一个新项目,两地合作办公大概有10人共用一个项目分支,几分钟内可能有多人提交,造成连续多个merge在gitk的路径中,看不清某个人某次有价值的提交是哪一条,故组...

2018-02-08 12:17:24 21413 2

转载 转载张明云Android应用性能优化经验分享ppt

原ppt忘了从哪里推荐下载的,里边的总结扩展了本人视野,故转载摘抄部分如下:四类性能优化指标: 没有给出ppt链接很抱歉…

2018-01-04 15:20:28 588

转载 [转载]Java多线程-工具篇-BlockingQueue

取自:http://www.cnblogs.com/jackyuj/archive/2010/11/24/1886553.html前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员

2017-11-02 17:52:03 335

转载 [转载]进程与线程的区别

说法一:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一

2017-11-02 15:31:10 448

转载 [整理]Android三大图片加载框架Fresco,Glide,Picasso对比

- Picasso所能实现的功能,Glide都能做,无非是所需的设置不同。但是Picasso体积比起Glide小太多且图像质量比 Glide 高,Glide 的速度比 Picasso 更快,Glide 的长处是大型的图片流,Fresco 可以说是综合了之前图片加载库的优点,其在5.0以下的内存优化非常好,但它的不足是体积太大,按体积进行比较:Fresco>Glide>Picasso

2017-11-02 13:52:49 674

转载 [转载]Java集合---ArrayList的实现原理

http://www.cnblogs.com/ITtangtang/p/3948555.html虽然是抄袭,仍然非常想记录过来,基础的东西怎么可以不会!!一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections

2017-11-01 18:29:43 346

转载 【笔记】Android应用启动优化

《Android应用启动优化:一种DelayLoad的实现和原理》 :在Android开发中,应用启动速度是一个非常重要的点,应用启动优化也是一个非常重要的过程。对于应用启动优化,其实核心思想就是在启动过程中少做事情,具体实践的时候无非就是下面几种:异步加载、延时加载、懒加载。本文针对延时加载的实现进行了详细分析。

2017-10-25 17:22:40 408

原创 小米设备打开了开发者选项和USB调试仍然无法安装成功的问题

小米设备无法安装的问题及解决: DeviceException: com.android.ddmlib.InstallException: Failed to establish sessionFor Mi devices for those who suffer from this: 1. enable developer mode - In your phone, go to Settin

2017-10-24 10:57:46 18673

转载 AI创业者如何成为风口上独角兽

转载地址:http://36kr.com/p/5094083.html孙然 • 2017-09-21 • 创投人说“对投资人而言,募投管退能力,怎么帮助被投企业,帮他们对接资源这都是战术。而战略层面,重要的是选对赛道。如果投的领域错了、整个行业没起来,再怎么抢先占位或创始人再聪明,都没用。” 他告诉36氪。具体来说,程浩偏好四大领域:AI+车(自动驾驶及相关领域),AI+机器人,AI+金融,以及AI

2017-10-19 18:40:33 472

转载 Android UI渲染总结

【转载地址:http://blog.csdn.net/jiahui_zhu/article/details/52212412】 Android UI渲染分为3个过程,分别是测量、布局和绘制,这3个都是深度优先准则,父UI在子UI之前绘制,再按顺序绘制兄弟UI。 Android每16ms发一次VSYNC信号触发UI渲染,只要16ms能达到一个流畅的画面,用户就不会感到卡顿。1000 / 16 ≈6

2017-10-19 15:07:47 656

原创 Words from new tab in mac

“If you would convince a man that he does wrong, do right. But do not care to convince him. Men will believe what they see. Let them see.” Henry David Thoreau

2017-09-28 11:56:02 290

转载 切换系统默认的终端

http://www.jianshu.com/p/f632f772060fmac os 系统默认的终端为bash,若要切换该终端为zsh,可以使用以下命令: chsh -s /bin/zsh前提是系统中已经安装了zsh。输入该命令会要求输入系统密码。 若要从zsh改回bash,可以使用如下命令: chsh -s /bin/bash

2017-09-23 14:55:20 1117

原创 shell 清理app缓存

使用shell清理app缓存 adb shell pm clear 包名查看测试机当前最上层页面: adb shell dumpsys activity |grep -10 “activities from top to bottom”

2017-09-19 18:35:53 13595

原创 logcat查看网络请求相关log

adb logcat -v threadtime |grep HTTP

2017-09-19 14:24:45 3221

转载 [转载]【FFmpeg】FFmpeg常用基本命令

分离视频音频流视频解复用视频转码视频封装视频剪切视频录制YUV序列播放YUV序列转AVI主要参数http://www.cnblogs.com/dwdxdy/p/3240167.html ,一点心青,2013.8.61.

2017-09-16 17:18:52 567

原创 LiveVideoStackCon分享会专题摘抄

已结束2017年4月22日LiveVideoStack Meet北京后直播时代技术Topic直播App端技术演进之路Topic如何不卡不掉线不延迟Topic全景图片和视频在微博中的实践Topic直播技术在教育行业的探索和实践Topic在线教育场景下的直播混合互动模型Topic技术驱动的金山云直播点播基础服务演进已结束2017年6月17日LiveVideoStack Meet杭州后直播时

2017-09-16 16:20:16 2267

转载 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别

参考链接: 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别,2015.6GOP(Group of picture) 关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧。增加关键帧个数可改善质量,但是同时增加带宽和网络负载. 不宜设置过大. P、B帧的复杂度大于I帧,所以过

2017-08-30 11:50:13 1686

原创 如何做到手机本地图片快速加载?

如何做到手机本地图片快速加载?产品形态,选择手机本地图片,先展现文件夹list,再进入分文件夹查看具体图片,listview+gridView形式; 第二种形式:类似手机qq,优先显示最近时间点的多张图片,若不是用户所需,再选择文件夹,再进入看该路径下图片.注意: 图片缩略图大小需要限制,若不压缩,占用内存会很大,造成ANR 加载缓慢,考虑是否做了图片两级缓存,是否在ui线程执行耗时操作,有没

2017-08-28 17:25:07 1268

原创 浏览器缓存怎么做

ajax在做什么,应用场景? pushserver与websocket怎么实现Thinking in Java, 并发-容器-类型-接口.

2017-08-28 17:24:34 523

原创 插件化方案-比较滴滴VirtualApk和360DroidPlugin

Android组件化和插件化开发,概念解释 Android 使用动态加载框架DL进行插件化开发,时之沙2014博客插件化开发总的来说有以下几点好处(不同插件框架不一样):宿主和插件分开编译并发开发动态更新插件按需下载模块方法数或变量数爆棚占坑,后续调研比较…

2017-08-28 17:11:06 3395 2

原创 源码中throw new RuntimeException("Stub!");的含义

几乎所有的android源码实现都有throw new RuntimeException(“Stub!”);这么一段代码,例如:public boolean startActivityIfNeeded(Intent intent, int requestCode) {throw new RuntimeException("Stub!");}1“RuntimeException(“Stub!”)”

2017-07-27 12:24:04 14689 1

转载 [转载]Android系统的运行机制: 启动流程与层间交互

Android系统剖析 和 Android系统的运行机制: 启动流程与层间交互,2015-02-28Android运行机制1. 启动流程所有从init开始…与大多数的基于Linux系统在启动阶段类似,bootLoader加载Linux内核,然后开始init进程。 init启动Linux守护进程,包括: USB守护进程(usbd)来管理USB连接 Android调试桥守护进程(adbd)来管理A

2017-07-21 19:10:51 435

转载 [转载]Android系统运行机制

发现一篇博文中的图片很好看,贴在此:Android系统剖析 和 Android系统的运行机制,mattermon,2015-02-28Android源码学习之八—系统启动过程,2010-12-31Android的启动过程可以分为两个阶段,第一阶段是Linux的启动,第二阶段才是Android的启动,下面我们分别来了解一下具体的过程。首先是Linux启动,这一部分我想就可以略过了,无非是Linux的B

2017-07-21 15:15:42 460

转载 [转载]Android中asset文件夹和raw文件夹区别

转载自:http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216428.html*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点: 1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.fil

2017-07-20 11:07:56 272

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除