- 博客(58)
- 资源 (12)
- 问答 (2)
- 收藏
- 关注
原创 Git提交规则
如果当前 commit 与被撤销的 commit,在同一个发布(release)里面,那么它们都不会出现在 Change log 里面。还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。Body部分的格式是固定的,必须写成This reverts commit hash>.,其中的hash是被撤销 commit 的 SHA 标识符。其中,Header 是必需的,Body 和 Footer 可以省略。
2024-06-12 13:45:58
211
原创 Activity启动流程详解
利用类加载器进行创建实例,同时利用Instrumentation回调activity的生命中周期。然后AMS进程一系列的工作,如判断该activity是否存在,启动模式是什么,有没有进行注册等。,利用本地进程在系统服务进程的IBinder接口直接访问本地ActivityThread。通过AMS在本地进程的IBinder接口,访问AMS,这里采用的跨进程技术是AIDL。的内部类,IApplicationThread是在远程服务端的Binder接口。ActivityThread通过。...
2022-07-20 15:40:34
1336
原创 Mac HomebrewCN被墙
HomebrewCNHomebrew 国内自动安装脚本/bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”
2022-05-07 14:54:39
511
原创 Git 删除远程仓库错误提交的绝技
如有3个commit如下:commit 03commit 02commit 01要删除commit 3git reset --hard HEAD^git push --force
2022-01-06 10:58:57
1276
原创 android studio 4.2.2版本更新问题
1.更新連線超時,是網路問題,之前我以為得翻牆,原來是公司網路太慢了。2.android studio 4.2.2 編譯程式 報錯Unknown host ‘android-mirror.bugly.qq.com’. You may need to adjust the proxy settings in Gradle.解決方式:是因為gradle 代理的問題,進入C:\users\使用者名稱.gradle 目錄下的gradle檔案,記事本開啟刪除或註釋以下配置資訊systemProp.https.
2021-08-06 14:57:39
625
原创 Android 混淆大全一篇就够了
############################################### 对于一些基本指令的添加############################################### 代码混淆压缩比,在0~7之间,默认为5,一般不做修改-optimizationpasses 5# 混合时不使用大小写混合,混合后的类名为小写-dontusemixedcaseclassnames# 指定不去忽略非公共库的类-dontskipnonpubliclibrarycla.
2020-10-20 11:31:15
4657
原创 Git分支规范
分支策略开始开发前,从develop拉取特性分支,分支命名为 feature/xxx特性开发完成后,向develop分支发起Merge Request,评审后合入develop分支转测时,从develop拉取release分支,从转测到发布前的bug修复都在release分支,分支命名为 release/v0.2.0release分支入master,并打tag,发布,tag按版本命名,发布后release分支因合并回develop出现线上bug时,从特定tag拉取hotfix分支,所有的bug修复
2020-10-13 10:57:35
324
原创 Charles抓包教程
Charles下载:https://www.charlesproxy.com/latest-release/download.do注册:选择菜单—> Help—> Register,输入Registered Name: https://zhile.ioLicense Key: 48891cf209c6d32bf4选择菜单—> Help—> Register—>SSL Proxying:Install Charles Root CertificateInstall
2020-09-19 10:53:27
441
原创 华为鸿蒙系统
华为鸿蒙系统华为鸿蒙系统(英文:huaweiHarmonyOS,HongmengOS)。在2019年8月9日,华为在东莞举行华为开发者大会,正式发布操作系统鸿蒙OS。鸿蒙OS是一款“面向未来”的操作系统,一款基于微内核的面向全场景的分布式操作系统,现已适配智慧屏,未来它将适配手机、平板、电脑、智能汽车、可穿戴设备等多终端设备。2020年9月10日,华为鸿蒙系统升级至华为鸿蒙系统2.0版本 。华为鸿蒙系统2.0通过跨设备协同、大小屏互动、极速配网、自适应 UX、可视可说 AI 赋能语音交互、开发者开
2020-09-16 17:44:42
5530
原创 Dart语言异步支持
Dart类库有非常多的返回Future或者Stream对象的函数。 这些函数被称为异步函数:它们只会在设置好一些耗时操作之后返回,比如像 IO操作。而不是等到这个操作完成。async和await关键词支持了异步编程,允许您写出和同步代码很像的异步代码。处理FuturesFuture.thenFuture.delayed 创建了一个延时任务(实际场景会是一个真正的耗时任务,比如一次网络请求),即2秒后返回结果字符串"hi world!",然后我们在then中接收异步结果并打印结果,代码如下:Futu
2020-09-08 20:40:04
186
原创 Protobuf详解使用
Protobuf全称是Google Protocol Buffer,是一种高效轻便的结构化数据存储方式,可用于(数据)通信协议、数据存储等。Xml、Json是目前常用的数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间的映射关系,一般用字符串的形式保存在序列化后的字节流中。消息和消息的定义相对独立,可读性较好。但序列化后的数据字节很大,序列化和反序列化的时间较长,数据传输效率不高。Protobuf和Xml、Json序列化的方式不同,采用了二进制字节的序列化方式,序列化与反序列化不需要解
2020-09-04 02:04:09
2382
原创 Fiddler抓包教程
Fiddler抓包教程通过ipconfig查看电脑ip地址在这里配置https允许远程连击和设置端口号重要的是手机设置 百度提供教程
2020-09-03 16:32:39
199
原创 Flutter 可行性分析
Flutter 可行性分析需要学习Dart语言,Flutter 组件跨平台主要是UI框架,需要跟系统通讯,需要会Android和iOS native开发,MethodChannel跟原生通讯。跨平台支持(UI组件/API) 提供Android和iOS两种风格组件Flutter万物皆为Widget的原则,提供了接近30多种不同的布局widget,日常中用的也有如Container、Padding、Center、Align、Row、Column、Stack、ListView等上十种调试模式断言 :
2020-08-08 18:13:28
448
原创 排序查找算法集合
排序查找算法集合 //冒泡排序 主要是交换位置 public void bubbleSort(Integer[] arr, int n) { if (n <= 1) { return; //如果只有一个元素就不用排序了 } for (int i = 0; i < n; ++i) { // 提前退出冒泡循环的标志位,即一次比较中没有交换任何元素,这个数组就已经是有序的了
2020-08-04 10:10:03
164
原创 LayoutInflater.inflate()方法的深入理解
LayoutInflater.inflate(int resource, ViewGroup root, boolean attachToRoot)方法有一个接收三个参数的方法重载 resource:R.layout.xxx ,root:指定resource的父布局 ,attachToRoot:是否依附于父布局。inflate(int resource, ViewGroup root, boolean attachToRoot)看源码可知:如果root为null,attachToRoot将
2020-07-27 12:03:59
293
转载 Android Studio Logcat 过滤我们不想显示的日志信息
平时我们使用Android studio查看logcat都是添加Fliters显示我们需要的TAG的日志输出。那么如何过滤掉我们不需要的TAG的日志输出呢?使用场景: 我们需要查看好几个TAG的日志输出,单独过滤某个TAG肯定是不行的,而很多无用的日志刷屏出现,此时只能把刷屏出现的一个或多个TAG屏蔽掉。 解决方案: 跟平时设置过滤一个TAG的方式一样,只是添加Log ...
2020-03-30 17:17:43
5184
原创 约束布局ConstraintLayout详解
目录1.介绍2.为什么要用ConstraintLayout3.如何使用ConstraintLayout3.1 添加依赖3.2 相对定位3.3 角度定位3.4 边距3.5 居中和偏移3.6 尺寸约束3.7 链4.辅助工具4.1 Optimizer4.2 Barrier4.3 Group4.4 Placeholder4.5.Guideline5.总结1.介绍约束布...
2019-11-12 17:55:40
415
原创 Java多态详解
对于多态,可以总结它为: 一、使用父类类型的引用指向子类的对象; 二、该引用只能调用父类中定义的方法和变量; 三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用) 四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。java多态,如何理解父类引用...
2019-07-02 17:33:47
175
原创 蓝牙基础知识探索
蓝牙初识蓝牙模块可以通过串口(SPI、IIC)和MCU控制设备进行数据传输。蓝牙模块可以做为主机和从机。主机就是能够搜索别的蓝牙模块并主动建立连接,从机则不能主动建立连接,只能等别人连接自己。BR/EDR:基础率/增强数据率(version:2.0/2.1)特点是:支持持续无线连接,以点对点(P2P)网络拓扑结构建立一对一(1:1)设备通信。LE:低耗能(version:4.0/4.1/4...
2019-06-14 11:19:45
708
1
原创 Android项目TargetSdkVersion的作用
Android系统平台的行为变更,只有targetSdkVersion的属性值被设置为大于或等于该系统平台的API版本时,才会生效;compileSdkVersion属于Android编译项目时其中的一项配置,主要区别是compileSDKVersion在不会被打包的APK文件中,targetSdkVersion和minSdkVersion将被打包到APK文件中如图:...
2019-05-10 15:46:44
947
原创 最新版Sourcetree墙内免登陆
由于sourcetree版本更新免登陆的方法也需要加一步Sourcetree 官网:Sourcetree | Free Git GUI for Mac and WindowsSourceTreeSetup-3.1.2旧版 sourcetree 只需要添加 accounts.json 文件就能实现免注册登录,而新版本则需要 添加 accounts.json 文件和添加 user.config ...
2019-04-17 15:09:12
1759
2
原创 gRPC学习历程(一)
“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。“RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”“我去。。。”,我如梦初醒,我对面坐着的可不是一个程序员,为了不去洗碗,我瞬间调动起全部脑细胞,星辰大海在我脑中汇聚,灵感涌现......"是这样,远程过程调用,自然是相对于本地过程调用来说的嘛。"“嗯哼
2019-04-17 15:00:31
532
原创 常见的加密和解密算法—AES
常见的加密和解密算法—AES一、AES加密概述高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB...
2018-12-05 16:54:24
4432
2
原创 一次完整的HTTP事务
一次完整的HTTP事务是怎样一个过程?当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?以下过程仅是个人理解:域名解析 --&amp;gt; 发起TCP的3次握手 --&amp;gt; 建立TCP连接后发起http请求 --&amp;gt; 服务器响应http请求,浏览器得到html代码 --&amp;gt; 浏览器解析html代码,并请求html代码中的资源...
2018-12-05 14:45:51
239
原创 mkdir和mdirs区别
mkdir,mkdirs方法1、关于两者的说明如下: boolean mkdir() : 创建此抽象路径名指定的目录。 boolean mkdirs() : 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。 2、结合自己的理解及具体实践如下:File file = new File("e:/test");file.mkdir();这样会在c:/路径下创...
2018-07-06 09:46:13
538
原创 Android APP CC2640R2F OTA 流程
Android APP CC2640R2F OTA 流程1.镜像(bin文件)验证a. ffc1写入(10:00)打开通知 ffc2写入(10:00)打开通知 ffc5写入(10:00)打开通知 发送CMD 01(1byte)到ffc5,返回3byte(第二个字节是返回需要修改的mtu大小 OAD_BLOCK_SIZE) Get OAD Block Size Command...
2018-05-16 14:26:32
2112
原创 JavaEE 基础学习
Java基础一、java面向对象的三大特性与含义 • 继承:从已有的类得到继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序的可变因素的重要手段。 • 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已经定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自制、封闭的对象。可以说,封装就是隐藏一切可隐藏的东西,只向外界提...
2018-04-09 10:57:04
335
原创 一篇读懂正则表达式
基础\d可以匹配一个数字 \w可以匹配一个数字或字母或_ \s可以匹配一个空格(也包括Tab等空白符) .可以匹配任意字符(数量为1) *表示任意个字符(包括0个) +表示至少一个字符 ?表示0个或1个字符 {n}表示n个字符 {n,m}表示n-m个字符 表示行的开头,\d表示必须以数字开头。 表示行的结束,\d表示行的结束,\d表示行的结束,\d表示必须以数字结束。 (注...
2018-04-04 17:57:47
245
转载 Java并发编程:深入剖析ThreadLocal
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二....
2018-04-04 17:11:08
185
原创 Android中物联网byte的用法
package test; public class A { public static void main(String[] args) { //前提:在java中,默认都是int型 //负数在计算机中用补码表示,转换规则为 //十进求二进制负数情况 // 先求出与该负数相对应正整数二进制代码,然后...
2018-03-14 17:50:03
676
原创 测试用例编写设计
如何编写软件测试用例?测试用例编写工具? 软件测试用例是描述测试过程具体步骤的文档,包括测试的输入参数、条件、配置、预期输出结果等,并以此来判断被测软件的各模块是否正常工作。编写测试用例可以使我们理清思路,避免遗漏,同时可以跟踪测试进展,为测试项目提供参考依据。那么如何来编写一份合格的测试用例呢?方法/步骤软件测试用例的编写
2017-12-22 10:54:09
732
原创 Android开发 - ActivityLifecycleCallbacks使用方法
ActivityLifecycleCallbacks是什么?Application通过此接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理。为什么用ActivityLifecycleCallbacks?以往若需监测Activity的生命周期事件代码,你可能是这样做的,重写每一个Acivity的onResume(),然后作统计和处理:
2017-12-08 10:03:08
343
原创 一眼看懂https的工作流程
总结: 1.服务器 用RSA生成公钥和私钥 2.把公钥放在证书里发送给客户端,私钥自己保存 3.客户端首先向一个权威的服务器检查证书的合法性,如果证书合法,客户端产一段随机数,这个随机数就作为通信的密钥,我们称之为对称密钥,用公钥加密这段机数,然后发送到服务器 4.服务器用密钥解密获取对称密钥,然后,双方就已对称密钥进行加密解
2017-11-07 10:45:52
1380
1
转载 Android蓝牙一篇看懂
Android蓝牙BLE的详细讲解Slide01我今天分享的主题是 Android上低功耗蓝牙的实践。这个主题比较小众。我在过去的一年多的时间里,主要是在做低功耗蓝牙相关的开发。接触过程中发现,BLE的开发和通常的 Android APP的开发有点不一样,这里需要访问硬件资源,而且涉及到一些协议相关的内容,而且这方面的资料也比较少。今天我从 Android开发者的角度,来分
2017-11-06 14:38:22
1244
5
转载 软引用,弱引用的区别
Java 如何有效地避免OOM:善于利用软引用和弱引用 想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲: 一.了解 强引用、软引用、弱引用、虚引用的概念 二.进一步理解软引用和弱引用 三.如何利用软引用和
2017-09-30 17:02:18
1667
转载 对称加密与非对称加密区别
(一)对称加密(Symmetric Cryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越
2017-09-30 14:22:37
470
原创 android studio debug
这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此。 先编译好要调试的程序。1.设置断点选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。 2.开启调试会话点击红色箭头指向的小虫子,开始进入调试。 IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的
2017-09-07 11:22:27
260
Android SDK platform-tools 带systrcace文件抓取trace文件
2022-09-19
软件项目管理
2018-03-31
TCP三次握手4次挥手详解PDF
2017-09-04
google play 上线被拒提示违反了我们的恶意行为或用户数据政策
2017-07-06
Android登陆客户端与服务器端的源代码
2016-04-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人