自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Jetpack - Room&Paging

ROOM&PagingRoom官方文档Paging官方文档简单的使用ROOMPaging Room官方文档 Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。 该库可帮助您在运行应用的设备上创建应...

2020-01-08 10:43:30

阅读数 26

评论数 0

原创 Jetpack - Lifecycles

Lifecycles官方文档简单使用Activity注册监听 官方文档 生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。 简单使用 比如我们有这样一个场景 ,视频播...

2020-01-03 18:49:13

阅读数 15

评论数 0

原创 Jetpack - Navigation

Navigation官方文档简单使用新建两个fragment新建navigation的xml 官方文档 导航组件由以下三个关键部分组成: 导航图:在一个集中位置包含所有导航相关信息的 XML 资源。这包括应用内所有单个内容区域(称为目标)以及用户可以通过应用获取的可能路径。 NavHost:显示...

2020-01-03 18:07:56

阅读数 13

评论数 0

原创 Jetpack - Databinding

Databinding官方文档简单使用数据ActivityMyBindinAdapterXML更多操作请查阅官方文档 官方文档 简单使用 要开始使用数据绑定,请从 Android SDK 管理器中的支持代码库下载该库。有关详情,请参阅更新 IDE 和 SDK 工具。 要将应用配置为使用数据绑定,请...

2020-01-03 14:43:32

阅读数 17

评论数 0

原创 jetpack -- LiveData

LiveData优势确保界面符合数据状态不会发生内存泄露不会因 Activity 停止而导致崩溃不再需要手动处理生命周期数据始终保持最新状态适当的配置更改共享资源简单使用用户信息ViewModel+LiveDataActivity 官方文档 优势 确保界面符合数据状态 LiveData 遵循观察者...

2020-01-03 11:50:35

阅读数 13

评论数 0

原创 Jetpack - ViewModel

ViewModel官方文档简单使用创建数据模型使用数据 官方文档 ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续存在 // ViewModel and LiveData imp...

2020-01-03 10:37:45

阅读数 27

评论数 0

原创 HardwareRenderer EGL error: EGL_BAD_SURFACE

现象:在打开Activity的时候出现EGL error: EGL_BAD_SURFACE , 设备界面黑屏 ,点击屏幕正常显示 错误日志 2 16:38:11.831 E/IMGSRV ( 2623): :0: gralloc_module_createfence: Failed to me...

2019-11-13 17:35:46

阅读数 27

评论数 0

原创 Java反射基本使用

Java反射Class基本类型的Class通过反射获取类方法的信息通过反射获取类字段通过反射获取类的构造通过反射调用类的方法获取JavaBean类的属性值 Class 一个类只有一个Class Test test = new Test(); Test test2 = new Test(); C...

2019-11-13 12:38:17

阅读数 14

评论数 0

原创 Android WebRTC实现音视频对讲

WebRTC新建Android工程 并添加依赖渲染视频的view初始化控件初始化PeerConnectionFactor注册事件监听发送offer收到Offer发送answer收到answerCandidate变化服务端代码找到自己电脑的ip 慕课网课程webrtc入门学习后的总结 新建And...

2019-11-12 15:28:08

阅读数 50

评论数 0

原创 Android性能优化

Android性能优化导读 启动优化 内存优化 布局优化 卡顿优化 线程优化 网络优化 电量优化 瘦身优化 稳定性优化

2019-10-29 10:53:36

阅读数 203

评论数 0

原创 Android稳定性优化

稳定性优化稳定性Crash尽可能的复现Crash方案建设 稳定性 Crash率 性能 业务高可用 Crash UV ,PV Crash率 java ,Native Crash率 启动,重点流程Crash率 增量 ,存量Crash率 尽可能的复现Crash 获取 堆栈,设备,OS版本 ,进...

2019-10-29 10:05:44

阅读数 44

评论数 0

原创 Android瘦身优化

瘦身优化APK组成apk查看大小瘦身方法 APK组成 代码相关 :classes.dex 资源相关 res ,assert ,drawable so相关 apk查看大小 Analyze APK 直接把apk拖入Android studio就能查看apk的组成大小 APKTools ht...

2019-10-28 23:57:20

阅读数 28

评论数 0

原创 Android 电量优化

电量优化工具介绍监控电量广播获取电池信息Battery Historian测试方向Battery Historian使用查看设备运行时能耗优化方案总结 工具介绍 监控电量广播获取电池信息 String ACTION_BATTERY_CHANGED = “android.intent.action....

2019-10-28 23:30:28

阅读数 32

评论数 0

原创 Android 网络优化

网络优化工具选择StethoNetwork Profiler抓包工具线上流量获取使用网络的场景解决方案 工具选择 Stetho 强大的应用调试桥,连接Android和Chrome 网络监控,视图查看,数据库查看,命令行扩展 使用步骤 com.facebook.stetho:stetho-okh...

2019-10-28 22:46:20

阅读数 26

评论数 0

原创 Android线程优化

Android线程优化线程调度原理调度模型Android线程调度nice值cgroup注意Android异步线程几种方式线程池线程池使用准则如何锁定线程创建者统一线程库 线程调度原理 任意时刻 ,只有一个线程占用CPU,处于运行状态 多线程并发 :轮流获取CPU使用权 JVM负责线程调度:按照特...

2019-10-22 10:41:10

阅读数 136

评论数 0

原创 Android卡顿优化

Android卡顿优化卡顿原因工具选择cpu profilersystraceStrictMode线程策略虚拟机策略检测卡顿的原理具体实现ANR卡顿单点问题检测方向主线程IPCDB ,IOView绘制Lancet AOP框架 hook系统api 卡顿原因 代码bug 内存占用大 绘制耗时 IO磁...

2019-10-21 23:56:24

阅读数 100

评论数 0

原创 Android布局优化

Andorid 布局优化工具选择SystraceLayout inspectorChoreographer 获取fps 工具选择 Systrace 关注Frams 正常绿色 ,丢帧黄色或者红色 Alerts栏 会有修改建议 Layout inspector 查看控件层级 Choreogra...

2019-10-21 22:41:19

阅读数 45

评论数 0

转载 Java注解详解

文章开头先引入一处图片。 这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。 Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还...

2019-10-21 18:59:18

阅读数 12

评论数 0

原创 Android内存优化

内存优化内存问题工具使用Memory Analyzer 内存问题 内存抖动 : 锯齿状 ,GC导致卡顿 内存泄漏 : 可用内存减少,频繁GC 内存溢出 : OOM.程序异常 工具使用 Memory Profiler Memory Analyzer LeakCanary Memory Ana...

2019-10-20 13:42:07

阅读数 102

评论数 0

原创 Memory Analyzer基本使用

Memory Analyzer 使用讲解[下载 Memory Analyzer](https://www.eclipse.org/mat/downloads.php)生成Hrof 文件使用Memory Analyzer打开转换后的文件开始排查根据包名查看使用查看Memory Analyzer线程使...

2019-10-20 13:39:01

阅读数 375

评论数 0

原创 Android启动优化

APP启动优化冷启动热启动温启动优化方向adb命令获取启动时间手动埋点计算启动时间常用的工具traceview使用方式systrace使用方式AspectJ工具使用Join Point (加入切入点)Advice语法介绍优化小技巧Theme切换异步优化启动器延迟初始化其它方案 冷启动 热启动 ...

2019-10-18 15:20:58

阅读数 153

评论数 0

原创 启动器使用

启动器使用[GitHub 代码地址](https://github.com/BraveJa/androidperformance)生成一个子线程任务生成一个主线程任务B任务依赖A任务 ,B任务需要等待A任务先完成等待任务 GitHub 代码地址 生成一个子线程任务 public class Ge...

2019-10-18 14:56:36

阅读数 14

评论数 0

原创 Android JNI详细知识

很详细的JNI学习文章 Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Androi...

2019-09-26 16:24:29

阅读数 259

评论数 0

原创 单例模式

单例模式饿汉式懒汉式 饿汉式 静态成员变量随着类的加载而加载,所以只有一个实例推荐用这种方式 public class SingletonPattern { private static final SingletonPattern singletonPattern= new Singlet...

2019-09-26 10:15:15

阅读数 13

评论数 0

原创 C++基础总结小案例(贪吃蛇)

C++基础学习总结小案例--贪吃蛇项目截图游戏元素游戏规则实现思路利用Excel模拟游戏+坐标游戏搭建游戏移动代码分析墙模块蛇模块食物模块 项目截图 游戏元素 游戏中元素分为:墙壁、蛇、食物以及蛇的可行区域和右侧的版本号和游戏玩法提示 墙壁: 星号表示,代表一个区域范围,也就是蛇的可移动区域,...

2019-09-12 09:43:18

阅读数 102

评论数 0

原创 C++基础十二

C++基础学习十二算法概述常用遍历算法for_each(iterator beg, iterator end, _callback);transform(iterator beg1, iterator end1, iterator beg2, _callbakc)常用查找算法find(iterat...

2019-09-05 16:44:55

阅读数 26

评论数 0

原创 C++基础十一

C++基础学习十一stack容器stack容器基本概念stack没有迭代器stack构造函数stack赋值操作stack数据存取操作stack大小操作queue容器queue容器基本概念queue没有迭代器queue构造函数queue存取、插入和删除操作queue赋值操作queue大小操作list...

2019-09-04 17:46:32

阅读数 21

评论数 0

原创 C++基础十

C++基础学习十STL六大组件简介STL优点常用容器string容器基本概念string 构造函数string基本赋值操作string存取字符操作string拼接操作string查找和替换string比较操作string子串string插入和删除操作string和c-style字符串转换vecto...

2019-09-04 10:01:02

阅读数 25

评论数 0

原创 C++基础九

C++基础学习九C++类型转换静态转换(static_cast)动态转换(dynamic_cast)常量转换(const_cast)重新解释转换(reinterpret_cast)C++异常异常基本概念异常基本语法总结:异常严格类型匹配栈解旋(unwinding)异常接口声明异常变量生命周期异常的...

2019-08-30 18:00:24

阅读数 44

评论数 0

原创 Android Camera预览左右上下镜像

SurfaceView预览Camera没找到方法切换左右上下镜像的方法 改用TextureView预览Camera ,可以动态的切换镜像 Matrix matrix = textureView.getTransform(new Matrix()); switch (reversal...

2019-08-29 10:43:25

阅读数 558

评论数 0

原创 C++基础八

C基础学习八C++模板函数模板什么是函数模板?函数模板和普通函数区别函数模板和普通函数在一起调用规则类模板类模板基本概念类模板做函数参数类模板派生普通类类模板派生类模板类模板类内实现类模板类外实现类模板头文件和源文件分离问题模板类碰到友元函数类模板的应用 C++模板 c++提供了函数模板(func...

2019-08-28 12:33:13

阅读数 27

评论数 0

原创 C++基础七

C++基础学习七多态多态基本概念向上类型转换及问题问题解决方案(虚函数,vitual function)C++如何实现动态绑定多态的成立条件:抽象基类和纯虚函数(pure virtual function)纯虚函数和多继承虚析构函数虚析构函数作用纯虚析构函数重写 重载 重定义 多态 多态基本概念 ...

2019-08-27 11:01:07

阅读数 31

评论数 0

原创 C++基础六

C++基础学习六继承和派生继承基本概念派生类定义三种继承方式:从继承源上分:派生类访问控制继承中的构造和析构继承中的对象模型对象构造和析构的调用原则继承中同名成员的处理方法非自动继承的函数继承中的静态成员特性多继承多继承概念菱形继承和虚继承虚继承实现原理 virtual查看内存布局(对象模型)De...

2019-08-26 14:39:13

阅读数 26

评论数 0

原创 C++基础五

C++基础学习五运算符重载运算符重载基本概念语法运算符重载碰上友元函数可重载的运算符自增自减(++/--)运算符重载指针运算符(*、->)重载赋值(=)运算符重载等于和不等于(==、!=)运算符重载函数调用符号()重载不要重载&&、||符号重载总结 运算符重载 运算符重载基本...

2019-08-25 10:06:41

阅读数 72

评论数 0

原创 C++基础四

C基础学习四静态成员静态成员变量静态成员函数const静态成员属性静态成员实现单例模式C++面向对象模型初探成员变量和函数的存储this指针this指针工作原理this指针的使用const修饰成员函数const修饰对象(常对象)友元友元语法 静态成员 在类定义中,它的成员(包括成员变量和成员函数)...

2019-08-19 00:12:03

阅读数 28

评论数 0

原创 C++基础三

C++基础学习三对象的构造和析构构造函数和析构函数构造函数语法:析构函数语法:构造函数的分类及调用匿名拷贝构造函数(错误)拷贝构造函数的调用时机构造函数调用规则深拷贝和浅拷贝浅拷贝深拷贝多个对象构造和析构初始化列表类对象作为成员explicit关键字动态对象创建对象创建C动态分配内存(隐患)new...

2019-08-15 09:44:45

阅读数 38

评论数 0

原创 C++基础二

C++基础学习二内联函数(inline function)内联函数的引出预处理宏的缺陷内联函数基本概念类内部的内联函数内联函数和编译器函数的默认参数函数的占位参数函数重载(overload)函数重载基本语法函数重载实现原理extern “C”浅析类和对象C和C++中struct区别将成员变量设置为...

2019-08-12 11:37:33

阅读数 30

评论数 0

原创 C++基础一

C++基础学习一HelloWorld:: 双冒号预算符namespace 命名空间using 的使用全局变量检测增强C++中所有的变量和函数都必须有类型更严格的类型转换struct类型加强“新增”bool类型关键字三目运算符功能增强C/C++中的constconst概述C/C++中const的区别...

2019-08-07 16:14:36

阅读数 439

评论数 0

原创 C基础十一

C基础学习十一位运算位逻辑运算符按位取反~位与(AND): &位或(OR): |位异或: ^用法打开位关闭位转置位交换两个数不需要临时变量左移 <<右移 >>用法:移位运算符 位运算 可以使用C对变量中的个别位进行操作。您可能对人们想这样做的原因感到奇怪。这种能力有...

2019-07-30 17:53:38

阅读数 33

评论数 0

原创 C基础十

C基础学习十文件操作磁盘文件和设备文件磁盘文件的分类文本文件和二进制文件文件的打开和关闭文件指针文件的打开 fopen文件的关闭 fclose文件的顺序读写 fgetc、fputc按照行读写文件fgets、fputs按照格式化文件fprintf、fscanf按照块读写二进制文件fread、f...

2019-07-29 09:43:34

阅读数 27

评论数 0

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