自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhjali123的专栏

GitHub地址https://github.com/AlbertSnow

原创 DeepLink 与 APPLink 与 IntentFilter跳转

DeepLink 与 Uri跳转 DeepLink是指Google提出的采用 deepLink,配置的 跳转方式 Uri是指 传统的在 AndroidManifest中声明 IntentFilter的 data,设置段链接的方式跳转 结论: 采用scheme非http的Uri跳转更加方便 h...

2020-06-30 11:01:17 26 0

原创 【Android从图标点击开始----- 1.进程资源角度 冷启动热启动Cold Warm Hot start】

应用的startup分为三种,耗时从多到少:cold warm hot 官方文档 Cold Start 系统进程 需创建APP 进程 开机后 第一次启动APP 系统kill app 系统的任务: loading and launch app launch app后,立即展示Blank ...

2020-06-16 01:49:07 20 0

原创 Android调用系统剪切图像模块踩坑(含代码方案 和 GitHub完整demo)

手机兼容性问题: intent规范是AOSP中相机,不是SDK的规范。兼容性 百花齐放。。。。很不靠谱,啥UI、交互都有 小米6不支持,在onActivityResult的intent实参中返回 Bitmap的参数 (有说是Bitmap太大导致) 华为手机 裁剪界面UI: 左侧X(叉)退出,右...

2020-06-12 16:04:18 66 0

原创 Regex提取符合的文本

Regex Regex默认为贪婪匹配 加?来去除贪心匹配(最大的匹配范围) 原文: My name is albert,<font color="red">Hello</font><font color="black">W...

2020-05-24 19:08:11 24 0

原创 Kotlin null safe实战的风骚走位

如何正确使用 ?. ?: let来避免空指针,并简化书写 Java的错误示例 //*** private WeakReference<TextureView> textureViewReference; @Override public int get...

2020-04-29 14:49:26 28 0

原创 Lock ReadWriteLock CyclicBarrier Semaphore【Java 并发】

Lock Lock是Java 5以后引入的新的API ReentrantLock 可保证顺序、可查询阻塞Thread list、可设置超时、查询持有lock的Thread 注意必须 主动unlock,退出Thread不会清空lock CyclicBarrier 在await阻塞 设置阻塞...

2020-04-27 18:09:56 32 0

原创 Android Parse error when parsing manifest.手动安装成功,自动安装失败

如题 低版本手机上:程序安装报错; 高版本没问题。 在SD上手动安装没问题;程序安装有问题 Parse error when parsing manifest. 原因 API<=23的系统,不支持private目录安装 解决 boolean old = Build.VERSION.SD...

2020-04-27 10:35:26 48 0

原创 HTTP---持久化连接--keep-alive-connection

版本:HTTP/1.1 和 一部分HTTP/1.0 持久连接:HTTP Persistent Connections,也成为 HTTP keep-alive 或 HTTP connection reuse) 只要任意一端没有明确断开连接,则保持TCP连接状态 之前 --SYN--> <...

2020-04-20 17:54:59 75 0

原创 【设计模式-1.0- 概要 - Guadi Project】

概述 设计模式分为三种 创建模式 (5个) 怎样创建类的实例 Builder 构造器模式 链式 SingleInstance 单例模式 内部类、volatile 工厂方法 模式 生产单个产品 抽象工厂 模式 生产一个系列(工厂的抽象)产品 原型模式 clone相关? ...

2020-04-19 23:48:02 35 0

原创 【Http2特性——Binary framing layer--push---HPACK】

google文档 Http2 http2 引入了不兼容的new binary framing layer, 所以大版本号增加了 除非使用tcp socket,否则看不出http的版本区别 基于SPDY SPDY google在2009年弄的项目,最大的目标是减少 减低网页加载延迟,通过解决ht...

2020-04-11 19:17:57 46 0

原创 【 SSL 与 TSL----Web---Guadi Project】

提前总结 TSL是SSL的新版、标准化版本 SSL SSL由Netscape开发 SSL协议实现在 Application Layer,直接在TCP之上 也有UDP版本,Datagram Transport Layer Security (DTLS) protocol 无需更改HTTP、e...

2020-04-11 19:08:36 35 0

原创 【Android架构Retrofit-1.0-概述-使用教程】

retrofit: 改进、翻新 Retorfit 将网络请求 抽象为 java接口 采用注解,描述配置参数 通过动态代理将 在使用线程池执行请求 网络请求、解析response的封装框架,并不执行 真正的联网操作 Retrofit 2.0 自带OkHttp 使用步骤 添加Retrofi...

2020-04-11 03:09:06 30 0

原创 VirtualBox ShareFolder不可见

必须安装VBoxGuestAdditions 本文解决的问题是 VBoxGuestAdditions 安装不上 Error Could not mount the media/drive ‘/Applications/VirtualBox.app/Contents/MacOS/VBoxGuest...

2020-03-14 23:55:11 67 0

原创 【Android系统更新--- Android10-getDeviceId返回null---DeviceId---AndroidID】

用意 保护用户隐私 限制第三方APP 访问到超出 APP使用期间的数据(device id、meid等) 导致10之后DeviceID不可用,推荐使用AndroidID Android 10系统 针对un-resetable 数据读取,新增限制。 影响的方法 Build getSerial...

2020-03-04 10:14:38 1775 0

原创 【算法-广度优先遍历(WFS Width-First Searching)- 最短路径 】

广度优先遍历(WFS Width-First Searching) 总结 WFS,数据结构采用 Queue enqueue 输入init 节点 dequeue 就是 出栈,并加入其 子节点 宽度优先,数据结构就是 Stack 递归自带Stack效果,所以可递归 代码 引用地址 pa...

2020-02-28 04:50:06 86 0

翻译 【Android性能优化-电量优化-App Standby Bucket-API28-Android_P】

Android电量优化进展 IceCreamSandwich 4.0 4.0.3, 14 15 Jelly Bean 16 17 18, 4.1 4.2 4.3 KitKat 19, 4.4 KitKat wear 20, 4.4w Lollipop 21 22, 5.0 5.1 Marshma...

2020-02-28 03:59:26 189 0

原创 Android中TextureView和SurfaceView的根本区别

结论 命令: adb shell dumpsys SurfaceFlinger | grep -C40 "Allocated buffers:" GUI: 不同的图像进行composite(混合),效率一部分取决于 composite的工具 应用的Window对应于Layer...

2020-02-18 00:52:20 141 0

原创 【Android系列1.2 HAL---硬件抽象层- 驱动规范 】

HAL hardware module(硬件模块、驱动)的规范 HAL 对比 应用开发(驱动开发) 就是FrameWork层(内核) Activity(hw_module_t) Activity.onCreate (*open) 规范 必须”继承“自hw_module_t 作者、版本等描述...

2020-02-16 14:07:50 46 0

原创 【Android系列1.1 驱动编程 -- Ashmem驱动源码】

Ashmem 驱动代码地址 Ashmem是Android提供的共享内存的IPC机制,通过驱动程序 提供共享内存实现 驱动提供的方法 static const struct file_operations ashmem_fops = { .owner = THIS_MODULE, .open =...

2020-02-13 02:17:34 39 0

原创 c语言中的volatile修饰符

Summarize 总结 声明为volatile的变量,阻止compiler的任何优化,因为变量会以compiler无法预测的方式改变。 每次都读取内存(主内存)中的值,而不是CPU的Register(寄存器、高速缓冲、工作内存),即使CPU运行的指令是对 同一variable操作 Liter...

2020-02-12 09:37:56 34 0

原创 【Android系列1.0 Binder 机制】

系统服务架构 Android系统服务架构遵循 本地客户端/服务端 通信模式, Binder机制在IOS的 "Mach Message"信息传递机制。servicemanager在IOS中类比launchd进程(同时扮演Linux中PID为1的init进程) Tips Bind...

2020-02-10 04:46:50 36 0

原创 【Android系列2.0 进程 --- SystemManager服务】

ServiceManager服务 Binder进行IPC时的ContextManager: 通过service的名称,返回binder的句柄,使Client进行IPC 由init进程扫描init.rc启动的二进制可执行文件 service servicemanager /system/bin/...

2020-02-10 04:44:56 140 0

原创 【Android系列2.0 进程 --- 应用进程】

应用进程 // 写的简单点,以后再补充 虚拟机实例 信息循环 Binder线程池 创建流程 AMS通过unix domain socket连接Zygote,fork出应用进程 AMS是Zygote fork出的SystermService进程开启的 service (TODO:具体 以线程、...

2020-02-01 18:35:30 75 0

原创 【Android系列2.0 进程 --- SystemService进程】

System进程 与系统服务相关 ActivityManagerService(AMS) WindowsManagerService PowerManagerService 等等 进程名 ps命令查看 system_server DDMS查看 systerm_process Sys...

2020-01-30 16:05:50 59 0

原创 【Android系列2.0 进程 --- Zygote进程】

Zygote进程 init进程解析init.rc文件,以service形式fork出Zygote进程 加载了Dalvik虚拟机 监听unix domain socket,用于fork 应用进程 执行的第一个程序为 frameworks/base/cmds/app_process/a...

2020-01-30 15:06:53 105 0

原创 【Android系列2.0 进程 --- init进程】

init进程 Android加载Linux内核后,开始运行初始化进程init Kernelcommand line: noinitrd root=/dev/nfs console=ttySACO init=/initnfsroot... init进程启动后,扫描init.rc配置文件 init...

2020-01-30 15:05:11 42 0

原创 【Android系列1.0 驱动开发 --- Linux 驱动 内核】

参考文档 Context 当探索Binder机制,引出很多Linux相关概念。说Binder是驱动程序,Binder用了内存共享、匿名内存共享。 Binder由 Client、Service、ServiceManager、Binder驱动程序 四个大模块组成那个。 那什么是驱动程序?什么是内存共...

2020-01-29 20:54:35 81 0

原创 C解决duplicate symbol

Context 在HeaderFile.h头文件了声明一个 LOG() 方法void LOG(std::string s) { std::cout << s << std::endl; } 在SourceFile1.cpp里 #include “HeaderFile...

2020-01-23 19:58:08 185 0

原创 【算法笔记--快速排序算法】

Quick Sort (快速排序) GeesforGeeks Quick Sort博文,包括视频、算法复杂度分析,C C++ Java Python C#的实现版本 单词 pivote 中心点 partition 分开、划分、分隔 Divide and Conquer algorithm 分治算...

2020-01-18 13:52:21 65 0

原创 Fragment生命周期show hide 测试

测试代码 git@github.com:AlbertSnow/LifeCycle.git tag: v1.0-fragment-lifecycle 测试手机 vivo x20A Android 8.1.0 API 27 布局 <FrameLayout andr...

2019-12-24 14:44:40 38 0

原创 TextView单行文字自适应--草稿代码

var maxWidth: Float = 0f private fun setTextDynamicSize (textView :TextView, text: String) { var textSizeInDp = 16f textView.set...

2019-11-28 19:54:56 21 0

原创 Android录音data数组的音量获取

private double handleVolume(short[] buffer) { long v = 0; // 将 buffer 内容取出,进行平方和运算 for (int i = 0; i < buffer.length; i++)...

2019-11-28 12:53:04 27 0

原创 Android Java 是否为昨天 今天 明天,24小时或12小时制

昨天、今天和明天 package com.sogou.baselib; import java.util.Calendar; public class STDayUtils { private final static int ONE_DAY_MILLISECOND = 1000...

2019-11-28 12:50:12 29 0

原创 【我要成为架构师 1.0------架构模式与设计模式的区别详解】

架构模式与设计模式 区分 架构模式(Architecture Pattern)内可以用设计模式(Design Pattern),但设计模式内无法用架构模式。 例如 MVC架构模式 Model 可以采用代理模式设计,data source(在Local端代理Remote(远端)的服务,比如Con...

2019-11-15 19:42:43 139 0

原创 OpenCV 视频流格式----avi与mp4区别

OpenCV python code, GitHub项目,中路径OpenCVDemo/OpenCvPythonDemo/VlogHelper/CreateVideo.py // 我用的mac,发现用XVID不生效 out = cv2.VideoWriter('project.avi�...

2019-11-14 11:14:41 77 0

原创 git gitignore文件规则

* 匹配所有字符 ? 只匹配一个字符 [a-zA-Z]匹配字符的范围 分隔符 开始或中间有/,匹配路径 相对于.gitignore的目录,否则匹配.gitignore下任意路径 hello匹配任何目录下的hello ni\hello就只匹配.gitignore的目录下的ni\hello...

2019-11-13 05:27:31 27 0

原创 Android invalidate requestLayout forceLayout

Invalidate 只是让draw失效,不涉及measure、layout forceLayout requestLayout forceLayout只是标记view,下次遍历一定measure,但是不发起遍历。 requestLayout 标记一定measure后,还想父布局传递,发起一次...

2019-11-12 20:06:34 20 0

原创 Java的方法名等class文件数据存在哪里,Java8之后的变化

Context QQ上的发文,然后就一顿检索 Java8之前 变量名是存在heap中 变量名存在class文件的的 constant pool(常量池) class file被load *** 一堆操作,存储在jvm的runtime-constant-pool(运行时常量池) 运行时常量池属于m...

2019-10-30 17:37:51 162 0

原创 C++ Class的实例化方式(Java对比)

Context 最近学习C++,之前也就是大学二级的水平,还自以为懂了。现在一看,呵呵… 我是Java5年了,感觉和C++的class struct unit实例化差异很大。 参考文档 Classes Classes are an expanded concept of data structu...

2019-10-27 16:34:05 39 0

原创 【JNI C++学习篇-Exception】

总结 Android系统8.1.0 (以下实验结果,可能与Android系统相关相关) JNI未做任何处理,Native调用Java代码发生异常 java方法退出 有Java异常抛出 native方法正常运行 进程重启 调用ExceptionClear,Java层异常不再抛出 Git t...

2019-10-17 20:29:04 21 0

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