自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++基础4(运算符重载)

C++基础3(运算符重载)运算符重载运算符重载可以重定义或重载大部分 C++ 内置的运算符。这样,就能使用自定义类型的运算符。重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。使用全局函数使用类的成员函数//1、+ 号运算符重载(使用全局函数)#include <iostream>using namespace std;class Vector {private: int x; int y;public

2021-03-17 14:24:17 77

原创 C++基础3(对象以及友元)

C++基础3(对象以及友元)可变参数static在类中的使用const 修饰函数友元函数 和友元类可变参数参数个数不定,可以是任意多。可变参数vaint sum (int num,...){//...为可变参数 va_list vp; va_start(vp,num); int sum =0; for(int i=0;i<num;i++){ num+=va_arg(vp,int) }

2021-03-11 19:30:05 90

原创 C++基础2(构造函数)

C++基础2(构造函数)C++的构造函数构造函数的调用默认值的构造函数析构函数malloc free new delete拷贝构造函数C++的构造函数创建一个Student类class Student{private: /* data */ char* name ; int age ;public: Student(){ cout<<"空参数构造函数"<<endl } Student(char*na

2021-03-11 19:16:51 115

原创 C++基础1(引用和重载)

C++基础1(引用和重载)c和c++的区别c和c++的打印常量引用和引用常量引用引用常量函数重载总结c和c++的区别1.c++的代码可以混编c的代码,也可以调用c。2.c++是面向对象的和Java类似 ,c和c++都需要自己回收内存 ,c是面向过程3.很多的开源框架是c++编写的,c++需要导入#include c和c++的打印// c的打印println("这是c的打印");//c++的打印std::cout<<"这是c++的打印"<<std::endl;//

2021-03-03 21:43:45 104 1

原创 安卓内存优化2 (软件使用及代码规范)

安卓内存优化2 (软件使用及代码规范)内存泄露产生原因使用工具内存抖动产生原因解决办法良好编码习惯1.数据类型2 循环操作3 数据结构与算法的解度处理4.枚举优化5.重复申请内存的问题6.避免GC回收将来要重用的对象7.Activity组件泄漏8.尽量使用IntentService,而不是Service内存泄露产生原因一个长生命周期的对象持有一个短生命周期对象的引用,通俗讲就是该回收的对象,因为引用问题没有被回收,最终会产生OOM.使用工具1 Android Profiler的使用Run菜单下

2020-12-14 11:28:48 63

原创 安卓内存优化1(JVM和GC原理)

安卓内存优化1(JVM和GC原理)JAVA虚拟机线程私有1 程序计数器PC2 虚拟机栈3 本地方法栈共享数据区JAVA虚拟机线程私有1 程序计数器PC 相当于一个执行代码的指示器,用来确认下一行执行的代码的地址,每个线程都有,类似确定执行到哪行代码2 虚拟机栈 与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期与线程相同,就是我们拼凑所说的栈内存。 每个方法在执行时都会创建一个栈帧,用于存储局部变量表、操作数栈等信息。每一个方法从调用 到完成的过程, 就是入栈到出栈的过程

2020-11-20 13:26:32 130

原创 安卓之UI绘制优化

安卓之UI的绘制优化CPU 与 GPU工作流程1 结构图2 加载流程图60HZ由来及卡顿处理1 卡顿原因分析2 解决办法查看方法 : 开发者选项-》Profile GPU rendering/调试GPU过度绘制处理方案布局的优化(主要减少CPU工作量)1 常用工具2 优化注意小结CPU 与 GPU工作流程CPU 的任务繁多,做逻辑计算外,还要做内存管理、显示操作,因此在实际运算的时候性能会大打折扣,在没有 GPU 的时代,不能显示复杂的图形,其运算速度远跟不上今天复杂三维游戏的要求。即使 CPU的工作频

2020-11-17 14:31:14 103

原创 App启动流程分析及处理办法

App启动流程分析系统层次launcher系统层次我们由手机开机开始来一步步走一下app启动的流程1.开机 手机会有一个BootLoader到RAM中执行2.BootLoader 拉起系统3.Linux内核会启动 Kennel会加载init.c文件4.init初始化和启动系统属性服务,开启Zygote(孵化器)进程5.Zygote开启创建JVM注册JNI方法,开启SystemService6.启动Binder线程池和SystemServiceManager开启各种服务7.Ams启动laun

2020-11-14 11:20:30 196

原创 接口数据加密之MD5加密

接口数据加密之MD5加密MD5 加密Java层加密功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入MD5 加密定义: 一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),MD5 加密

2020-09-26 14:56:06 1402

原创 动态代理MVP架构搭建

MVP架构搭建简介动手搭建1. base基类的搭建简介mvp的全称为Model-View-Presenter,Model数据层,View视图层, Presenter逻辑层。MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据动手搭建1. base基类的搭建(1)BaseView view接口(2)B

2020-09-12 16:02:17 188

原创 安卓插件化之增量更新

安卓插件化之增量更新开始准备开始准备需要了解一点NDK的知识,查一下bsdiff的一点相关知识,代码和思想不是特别复杂,而且在此只是写了合并拆分包的逻辑,用Http下载的代码我也没有写过...

2020-07-07 22:10:55 284

原创 安卓插件化之插件式换肤(2)

安卓插件化之插件式换肤(2)管理类的搭建安卓插件化之插件式换肤(1)管理类的搭建

2020-07-06 21:05:35 135

原创 安卓插件化之插件式换肤(1)

安卓插件化之插件式换肤(1)开始前准备拦截View1.创建BaseActivity2.在BaseActivity中拦截view框架的搭建1.基本框架的搭建开始前准备在学习之前最好先看一下setContentView源码阅读(安卓8.0),或者找一些大牛的分析看一下,因为我们需要了解activity加载view的流程我们才可以想一些方法,拦截view的创建,修改成我们所需要的,这里我将进行一步步进行,最终封装成一个可以使用的框架拦截View这里我就不进行源码分析了,我只是展示一下我们是怎么拦截view

2020-07-01 21:21:12 227

原创 Recycleview实现无限自动轮播

Recycleview实现无限自动轮播概述简单讲述修改adpter的复用机制正题Adpter适配器的实现activity的实现1基本实现2效果优化自动轮播效果基本实现概述RecycleView实现特定数据无限重复滑动在我看来不外乎有两种方法1.修改adpter的复用机制,无限复用数据2.在adpter中返回数据长度返回Integer的最大值由于第一种虽然能实现数据的无限重复但是数据位还是没有任何变化,所以在自动跳转至最后的时候无法在向下一位轮播,所以在这里我使用第二种方式实现自动轮播简单讲述修改

2020-06-29 20:04:10 1953

原创 Recycleview之更简便添加头部尾部

Recycleview之更简便添加头部尾部概述ListView添加头部尾部分析ListView源码分析ListView总结Recycleview添加头部尾部1.adpter外部添加一个带头尾的adpter使用与优化源码概述之前写过一篇关于通用的adapter的写法 ,在此基础上有添加了头部和尾部功能,因为ListView是封装了添加头部和尾部功能的,所以我们本着学习的态度研究研究ListView添加头部尾部分析ListView源码分析首先进入到ListView.addHeaderView 方法,方

2020-06-22 21:30:26 215

原创 Recycleview之打造通用的Adapter

Recycleview之打造通用的Adapter适配器概述1.简单BaseAdapter的实现2.多布局BaseAdapter的实现3.BaseAdapter的使用概述Recycleview 是安卓当今最常用的列表,封装一个比较简便的Adapter使代码更简便更易懂,将方法封装使用只关系数据变化才是王道废话少说直接封装BaseAdapter1.简单BaseAdapter的实现在继承 RecyclerView.Adapter 后 会自动生成 onCreateViewHolder、onBindView

2020-06-19 13:33:53 244

原创 setContentView源码阅读(安卓8.0)

setContentView源码阅读(安卓8.0)概述1.Activity的setContentView代码详情总结步骤2.AppCompatActivity的setContentView概述Activity 和AppCompatActivity 里面的setContentView 的代码是不同的,AppCompatActivity 对setContentView 又做了一定的判断和修改。不同版本的setContentView 实现的代码可能有一些差异,我们要查看源码需要下载一下各个版本的安卓源码,只

2020-05-26 20:57:06 196

原创 RecycleView实现合并拆分单元格

RecycleView实现合并拆分单元格Recycleview实现好处和实现思路(1)好处(2)实现思路实现代码1创建类创建AdpterRecycleview实现好处和实现思路(1)好处 1.实现简单RecycleView 是官方分装好的控件,使用普遍,代码清晰 2.比起自定义view实现来说在数据调控和点击事件来说更方便 3.对于初学者更好实现和理解(2)实现思路 如图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020052

2020-05-23 13:57:08 914

原创 自定义dialog(类AlertDialog)

Builder设计模式构建自定义dialog(类AlertDialog)AlertDialog源码分析看源码的准备功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片AlertDialog源码分析直接撸代码之前先看AlertDialog源码学习一波才好下手看源码的准备随便创建个Activity 先敲出AlertDialog1.Ctrl + 鼠标左键进入映入眼...

2020-04-29 22:10:38 504

原创 安卓学习模式系列---单例模式小结

单例模式定义:一种最最常见的一种模式,保证整个程序中只有一个实例常见写法1恶汉式/** * @author ${Li} * 版本:1.0 * 创建日期:2020/4/8 21 * 描述:1.单例 模式 恶汉式 * 随着类的加载就已经 new 了对象 */public class SingleDemo { public static SingleDemo mInstan...

2020-04-09 00:07:09 84

bsdiff.rar

生成拆分包代码 在当前文件夹下 sheift + 右键选择打开powershell 输入 .\bsdiff old.apk new.apk patch.patch

2020-07-06

空空如也

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

TA关注的人

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