自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hpbbs

去拜访代码的精神方法论

  • 博客(49)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android 数据库安全:用户退出后,事务回滚日志依然保存有相关的数据信息

详情:/data/data/package_name/databases/dday-db/data/data/package_name/databases/dday-db-shm/data/data/package_name/databases/dday-db-wal介绍:shm 和 walThe Android implementation for a SQLite database is normally in WAL (write-ahead log) mode. This uses 3 f

2022-02-18 17:15:20 982

原创 View.post VS Handler.post的区别和使用场景对比

View.post当对应的Widget View 没有attach到window的时候,对应的Runnable会被提交到 ViewRootImpl#RunQueue ,如果已经attach的话,会提交给UI Thread 对应的Handler的MessageQueue里面而对应的 RunQueue 文档描述:The run queue is used to enqueue pending work from Views when no Handler is attached. The work is

2022-02-09 15:12:37 1334

原创 [BugFix] [Android] DownloadManager使用流程问题导致的 下载下来的文件找不到

DownloadManager使用流程错误导致的无法找到下载完成的文件1. 问题描述2. 问题解决3. 解决后的思考5. 场景利用1. 问题描述先提交 enqueue 请求,后配置DownloadManager.Request(parseUri).also { // wrong position refId = downloadManagerService.enqueue(it) it.apply { setAll

2022-02-07 11:24:07 1948

原创 repo sync 会自动切换本地分支与remote 分支的对应---如何自定义这种行为

日后再写

2020-08-07 14:58:08 705 1

原创 写C的经验

给自己看的编码问题任何数据使用前最好 0 初始化减少使用宏,除非是为了 全局源码架构性的目的,比如根据Kconfig配置增减模块;尽量使用全局变量和inline函数来完成不要有面向对象的思维,别让面向对象搞坏了脑子header文件相当于控制源码的对外封闭性,当做public private关键字用就好使用struct 结构体,配合函数来模拟面向对象,如果你真的需要面向对象的话解决面向对象转结构性语言的不适用fuck it...

2020-08-04 15:20:12 219

原创 BUG-00x bug description + resolve ways

问题描述解决方案一解决方案X问题场景推广注意点

2020-06-11 15:52:56 154

原创 BUG-解决日志 区别字符编码的显示长度限制(EditText+LengthFilter)

BUG Fix Log 001EditText 区别字符编码的显示长度限制本文采用的是:通过EditText.setFilter() 来放入拓展的Filter(过滤器)来自定义相关功能首先来看一下原生实现为例// TextView(EditView)#setFilterspublic void setFilters(InputFilter[] filters) { if (filters == null) { throw new IllegalArgumen

2020-06-09 15:49:55 267

原创 Android 输入法管理 官网摘要

输入法可见性Android系统根据输入焦点或移出可编辑的文本字段时 来 显示或隐藏输入法以及输入法界面的和文本字段在输入法上的显示方式Android 会在 Activity 启动时将焦点移至布局中的第一个文本字段,但它不会显示输入法,此行为是恰当的,因为输入文本可能不是 Activity 中的主要任务输入文本确实是主要任务(例如在登录屏幕中),那么您可能希望默认显示输入法。如果用户的设备连接了硬件键盘,则不会显示软输入法。根据需要显示输入法Activity 的生命周期中有一个方法,您希望为其确保

2020-06-05 20:25:08 266

原创 NFC 读写模式开发---书籍摘要

Chapter Five: NFC 读写模式文章目录Chapter Five: NFC 读写模式NFC读写模式介绍Tag 读操作(NDEF数据)Tag 读操作步骤读写模式:主要功能是完成 NFC设备 对 NFC标签 的操作NFC读写模式介绍又称为 NFC读卡器模式需要熟悉NDEF协议 和 RTD协议Tag 读操作(NDEF数据)NFC设备扫描到带有NDEF数据的标签时,Android会提供对消息解析的支持学习目标:对任意的标准Tag进行读操作Tag 读操作步骤当NFC应用程序发现

2020-05-19 15:14:14 414

原创 NFC Android开发书籍笔记

文章目录Chapter One: NFC简介 RFID简介NFC分类NFC Forum 的使命是推进NFC技术的应用NFC主要技术指标:NFC 与RFID 对比NFC三种工作模式Chapter Two: NFC技术标准,协议基础2.4 NDEF协议2.5 RTDRTD_TEXTRTD_URIRTD——SmartPoster2.6 LLCP logical link control protocol2.7 协议汇总Chapter Three NFC开发的Android基础Chapter Four: NFC A

2020-05-18 21:01:30 598

原创 Linux 常用命令行(长期更新)

Linux 常用命令行简单使用文件、文件夹 基本操作命令例子含义参数注意cpcp -r src target将src递归复制到target,没有target则新建r:递归复制。src 源文件 目标文件文件夹也是一种文件文件查找运维基本操作命令例子含义参数注意psps网络命令...

2020-03-27 15:00:58 142

原创 Gradle下载仓库很慢

因为Gradle的Maven仓库在国外, 可以使用阿里云的镜像地址。解决办法修改项目下 build.gradle 和 flutter 安装目录flutter/packages/flutter_tools/gradle/flutter.gradle 两个文件中 buildscript 和allprojects 中的jcenter()google()修改为maven { url ‘http...

2020-03-22 00:54:42 371

原创 EventBus——Android应用框架(1)

文章目录EventBus0. 基本介绍1. 使用场景2. 基本使用2.1 使用之前:名词概念介绍**三要素****四线程模型(ThreadMode)**2.2 基本使用(5个步骤)2.3 特别介绍3. 痛点问题解决4. 其他框架对比5. 设计模式解析6. 静态代码文件结构基本源码阅读6.1 **EventBus.getDefault()**:6.2 **EventBus.getDefault()....

2020-03-19 16:28:00 334

原创 @框架名称——Android应用框架(@编号)

文章目录@frameworkname1. 基本使用2. 使用场景3. 痛点问题解决4. 其他框架对比5. 设计模式解析6. 静态代码文件结构7. 动态代码执行逻辑流8. 反思思考@frameworkname1. 基本使用2. 使用场景3. 痛点问题解决4. 其他框架对比5. 设计模式解析6. 静态代码文件结构7. 动态代码执行逻辑流8. 反思思考...

2020-03-19 14:04:37 129

原创 指导原则——阅读源码

了解这个功能模块的设计模式追踪函数调用时所传递参数 输入输出模型了解函数的参与对象 类学会画类图和时序图 理清对应类的功能了解各类的耦合相关性尝试理解所采用的设计理念时刻记住 函数类的目的...

2020-03-04 14:57:07 162

原创 Sql to Object VS Sql of Object

文章目录Java Object 中的 setter 与 getterLINQ 的定位:sql to objectSql of Object 的思维提出SQL of object + er实现SQLerJava Object 中的 setter 与 getterer结尾传达的是一种 范式编程的思维,将JavaBean视为一个可以读写的对象setter,getter 对应了计算机组成原理中的对操...

2020-03-04 14:07:44 245 2

原创 Java,Jvm 的设计理念和Android的基础和贯彻

Java的设计理念初学Java——Java语言继承了Smalltalk的OOP的特性,是广泛运用的编程语言中的OOP的代表再学Java——适用于网络开发的平台无关性语言,在Java的Object对象实现了wait,notify的对象级别的多线程的管程机制,让每一个Java对象都适用于高并发回望Java——设计为Jvm一体的特性,Java是Jvm与编程人员的或窃窃私语,或雅望高谈(不过由于Ja...

2020-02-19 16:25:37 413

原创 计算思维和经济思维

我认为当代的人最应该拥有的两种思维便是 计算思维 和 金融思维,计算思维从低向上的 模拟当下世界,服务社会运行,金融思维站在 传播角度,对世界组织进行抽象体现但是人类最缺少的是 自然思维这是一种无我的思维,参与的思维,人和自然交流,寻找相对的自我定位,自上而下的思维没有自然思维的人,就没有独立的生活和自我...

2020-02-19 15:56:32 593

原创 syncronized+wait/notify Java实现的语言级别的超大管程+Java 多线程机制的发展

最先是:syncronized+wait/notify不知道Java的syncronized的设计者是怎么思考的,将OOP的对象当做是条件变量,将syncronized 临界区 作为管程资源,真的是一个大手笔:想象整个Jvm就是一个大管程,每个Object都是一个condition从每一个对象头的markword 都有轻量锁和重量锁的 标志位 也能看的出来后来是Condition,Lock,...

2020-02-17 20:21:38 188

原创 关于http2.0更新和 Android网络请求框架使用连接池的思考

http 2.0的发展方向及优劣得失http2.0 的 连接复用,长连接,pull/push等一些功能,都能看出来其发展方向是 越来越 向应用层靠近(http本身确实也就是应用层的协议),有他的好处,也有他的弊端:好处是:符合现代化网页的应用场景,业务化服务,事务化服务的特点(我不认为头部压缩,分部请求是使得他传输更加高效的原因,主要原因在于 网页,客户端等大量数据请求所具有的事务化特点与ht...

2020-02-17 20:02:52 533

原创 Java对象 死里逃生 篇(后会陆续补各种场景的死而复生)

1. finalize()方法虚拟机用可达性算法分析 对象是否可达后-标记标记为不可达,后续回收算法会进行回收回收之前,会将对象放到F-queue队列中调用 finalize()函数在finalize()函数中将对象变为强引用,让其可达会小范围的再次执行一次可达算法判断对象可达,不回收内存注意:finalize只会被执行一次,finalize不保证被完全执行(里面死循环等)...

2020-02-17 17:50:05 207

原创 Java 1.2加入的四种引用:强引用,软引用,弱引用,虚引用

强引用传统理解上的引用,Obeject obj = new ArrayList();类似的引用,只要存在强引用关系,这个对象就不可能被gc,注意:不会被gc是说持有引用的对象 与 被引用的对象直接的可达性是绝对的,不会被虚拟机干涉;如果持有引用的对象与GC root不可达的话,依然有可能会被GC软引用被软引用关联的对象,会在系统将要发生内存溢出异常之前会被纳入可被回收的对象之列,回收之后...

2020-02-17 17:39:45 197

原创 JVM判断对象是否存活方法 以及 GC root集合

文章目录引用计数可达性分析Java中的GC root:引用计数优点:实现简单缺点:难以解决对象循环引用的问题可达性分析对象是否与 GCroot 可达来判断对象将来是否会被使用基于图论观点:如果图的连通分量大于 GC root数量,那么就存在不可达的对象,不可达对象是Java编码用户 不可见,jvm运行时不可见的对象Java中的GC root:虚拟机栈(栈帧中的本地变...

2020-02-17 17:19:21 579

原创 C++精确时间使用,各种时间统计列举

获得时间方法ctime 库只能统计到秒对于算法题:你可以让 程序跑1000遍后平均一下时间,或者更多的遍数对于项目代码:1000遍?come on!需要提高精度time 库windows.h:毫秒级std::GetTickCount()windows.h:微妙级别LARGE_INTEGER tmp;QueryPerformanceFrequency(&am...

2020-02-12 16:15:51 822

原创 Vscode+MinGW配置C++开发环境(解决版本过老和在线下载极慢问题)

文章目录准备电脑MinGW的编译器环境安装注意:配置Path环境路径VScode 安装C/C++拓展配置运行(多数配置直接被VSCODE自动生成)准备电脑MinGW的编译器环境为什么选择MinGW,支持位数可选,稳定,库包多,VScode有很好的支持为何不在 mingw.org下载,mingw版本较老,会有很多版本问题,第三方包问题,甚至标准库问题,因为不再维护为何推荐mingw-64,...

2020-02-09 14:53:13 4929 1

原创 LINK : fatal error LNK1104: 无法打开文件“libcpmt.lib”

配置MSVC的vscode的编译环境时:手贱在launch.json的配置文件添加的options的env的LIB选项,然后我将对应选项删除得以解决学到的经验:只要你没有作去删除文件,lib文件不会轻易丢失的多数原因是你没有告诉他哪里去找那么一步一步从vdcode ->系统变量->原文件夹的层级来坚持系统变量是否将其覆盖不要那么做修改配置文件时要保持非侵入的原则,...

2020-02-07 16:20:26 2231

原创 Hpbbs个人写作物料

Tower 个人写作物料发布文章https://mp.csdn.net/图片物料代码物料推广物料微信公众号

2020-01-27 17:22:50 245

原创 C++ virtual 使用和原理介绍 :推迟指针指向的决定

这篇博客适合已经学过的同学再次思考和回忆,对不了解编译原理和基本编程语言基础的学者不友好文章目录virtual根本原理什么函数可以是虚函数虚析构函数virtual关键字的实现,动态绑定实现窥览virtual根本原理virtual 无论是函数,还是类继承中,他的真实功能就是推迟指针指向的决定,将在编译期的决定推迟到运行时决定,于是就有了多态的实现,多态的原理便是运行时的动态绑定。虚基类的继...

2020-01-26 20:25:10 270

原创 Rust 安装,卸载,nightly/stable版本切换(全局或工作空间),提高下载速度

Rust安装,更新与版本控制版权所有,未经许可不得转载时间:时间created by:Tower1.1 安装1.1.1 下载Rust的安装器Rust推荐使用rustup程序来管理rust编译器等基本工具,可以官网现在得到Rustup 安装包地址rustup是安装和管理 Rust 构建版本的工具。 rustup 用于管理不同平台下的 Rust 构建版本并使其互相兼容, 支持安装由 ...

2020-01-26 19:53:35 21777 6

原创 Python数据科学 之 NumPy系统讲解

The NumPy module of Python未经许可不得转载时间:2020年1月17日17:33:15created by:Tower使用JupyterNotebook编辑0x00 前言(NumPy 的设计理念)对于一个技术的使用或许记背几个常用的函数和基本用法便好,但要理解一个技术和工具,设计理念便是其内核之一,就是文章诗词的风骨,嚼起来才有味道,本部分介绍一些NumPy的优...

2020-01-20 21:09:57 490

原创 Python爬虫 Regex(正则表达式): re module

Support for regular expressions (RE).IntroThis module provides regular expression matching operations similar tothose found in Perl. It supports both 8-bit and Unicode strings; boththe pattern an...

2020-01-16 11:50:30 311

原创 Jupyter Notebook+VSCode环境搭建及原理讲解

Python jupyter notebook简易上手使用教程(vscode+python extension)大家都是使用过Python的命令行交互比如Python安装包自带的IDLE的命令行模式Jupyter Notebook 解决的问题和自我定位可以看到,首先,界面不美观,其次,运行结果无法保存,所以大家实际开发是很少用这些,但是命令行模式用来测试片段代码还是很方便,省去创建文件,...

2020-01-15 12:53:28 11009 3

转载 Windows 注册表详解(转)

转新浪博客http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html

2020-01-14 18:47:17 276

原创 还在按鼠标调试?键盘F1-F10取消Fn快速调试

传统功能键:F1-F12媒体功能键:音量,亮度,锁屏,飞行模式等多数电脑,或者有些升级为win10的电脑,传统功能键变为了媒体功能键,开发人员来说,F1-F12一般对应一些IDE的调试键,每次Fn+F5会不顺手,下述为修改教程:目的:Fn+F5 =======》F5电脑进入BIOS不同品牌电脑方式不同,参照搜索品牌电脑BIOS方式2. 进入BIOS后,移动到第二个选项,“C...

2020-01-14 13:00:47 2388

原创 正则表达式(RE,Regular Expression)

正则表达式(RE,Regular Expression)正则表达式是一种表达式语法,借助状态机,实现字符串的匹配,以及相关处理可以这么说:正则表达式表示一类字符串,是有相同规律字符串的集合(语法严格的话,则是代表一个字符串) ,我们称这种规律为模式正则表达式符合编译原理所说的正规文法,是正规文法的构造式RE特点简洁特征RE的使用场景(字符串匹配的引用场景)表达文本类型的特...

2020-01-14 11:31:31 285

原创 C++ (Generic Programming)泛型编程与STL实现架构性讲解

泛型程序设计(GP)的基本概念编写不依赖于具体数据类型的程序将算法从特定的数据结构中抽象出来,使其通用C++ 的模板为泛型程序设计奠定了关键基础与面向对象的区别:OOP关注的是编程的数据方面,而泛型编程关注的是算法、术语:概念用来界定具备一定功能的数据类型,列如“可比较大小的所有数据类型(有比较有比较运算符)”----Comparable 概念“具有共有的复制构造函数并可以...

2020-01-13 17:52:10 581

原创 C++ 通用数组类的封装

0x00 动态数组(长度可伸缩的数组)#pragma once#ifdef ARRAY_H#define ARRAY_Htemplate <class T> //数组模板定义class Array {private: T* list; //存放动态分配的数组内存首地址 int size; //数组长度public: Array(int sz = 50); //构造...

2020-01-12 23:23:01 412

原创 C++ 模板使用 元编程介绍

0x01 模板(编译器的处理)背景:我们要处理的问题的逻辑都是一样的,但是在处理具体问题是,他们的数据类型可能会不同解决方案一:对于每一种数据类型的相同逻辑操作进行函数重载,来适合对应数据的处理,而不知至于有问题带来的问题:有多个函数重载的代码冗余,当修改算法时必须要在各个数据类型的重载函数中同步修改造成不一致问题解决方案二:模板允许我们将处理问题的逻辑从不同的数据类型中抽离出来,形成容器...

2020-01-12 19:56:55 224

原创 C++ override 和 final的准确介绍及原理分析

0x00 c++11 标准 提供的显式函数覆盖检测手段(override)背景:在派生类中写覆盖基类中的虚函数时,可能会因为疏忽,使得没有正确覆盖,而这个问题还是比较难发现的解决:c++ 11标准实现了显式函数覆盖的关键字override,当我们写上这个关键字时,就是告诉编译器,我要覆盖基类的虚函数,那么编译期就会主动检查 派生类 和 基类 中的两个函数签名(Signature)是否相同,如果...

2020-01-12 19:10:55 646

原创 C++ virtual 使用与实现原理:推迟指针指向的决定

virtual根本原理virtual 无论是函数,还是类继承中,他的真实功能就是推迟指针指向的决定,将在编译期的决定推迟到运行时决定,于是就有了多态的实现,多态的原理便是运行时的动态绑定。虚基类的继承是的类变量的指针可以推迟指向,而解决子类的二义性的问题以及存储浪费问题编译期:虚函数的函数名符号指向是空的运行期:虚函数的指针指向对象域,而不是类域什么函数可以是虚函数一般...

2020-01-12 16:55:05 264

蓝桥杯 比赛系统选手文.pdf

蓝桥杯 比赛系统选手文档,主要内容关于蓝桥杯的环境简介,对于第一次参赛算是比较好比赛环节培训,是必不可少的

2018-12-13

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

TA关注的人

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