- 博客(32)
- 资源 (14)
- 收藏
- 关注
原创 《OKR工作法》
首先说什么是OKR,就是目标(Objectives)-关键(key)-结果(results)管理方法论。有什么作用:降低无效工作和内卷,提高团队效率和产出。你为什么要学习: 可能你认为这不是产品看的书吗?程序员就不需要看了,但用了之后无论个人还是团队的工作效率都会增加,帮助大家少走弯路,而且中高级工程师就要带团队。不仅大公司,小公司同样需要。俗话说的好,磨刀不误砍柴工。
2023-03-09 10:40:49
1639
原创 利用Android Gradle进行自动化设置资源名命名规则
文章目录一、背景描述:二、思路分析三、问题解决与实现四、工具的使用五、结论与展望一、背景描述: 公司再不断推进组件化,多个Module开发。随着Module越来越多,当然也存在许多需要注意的问题。是无法保证多个Module中的资源命名完全不同,就可能会出现资源引用问题,造成资源冲突。二、思路分析 用Gradle配置,在android 中设置 resourcePrefix 属性,前缀字符串根据实际情况自定义。
2022-02-18 11:35:11
2364
原创 记录一下Activity的configChanges属性
前言:记录一下Activity的configChanges属性,方面以后使用。出自《Android开发艺术探索》,系统比较旧,Android5.0项目含义mccSIM卡唯一标识IMSI(国际移动用户识别码)中的国家代码,由三位数字组成,中国为460。此项标识m代码发生了改变mncSIM卡唯一标识IMSI(国际移动用户识别码)中的运营商代码,由两位数字组成,中国移动TD系统为00,中国联通为01,中国电信为03。此项标识mnc发生改变locale设备的本地位置发生了改
2022-01-16 11:57:20
2089
原创 可能是最详细的Android图片压缩原理分析(四)—— 大图加载优化(防止OOM)
前言: 这个还没写完,之后写完会进行更新。系列教程可能是最详细的Android图片压缩原理分析(一)—— Android图片压缩必备基础知识可能是最详细的Android图片压缩原理分析(二)—— 鲁班压缩算法解析可能是最详细的Android图片压缩原理分析(三)—— 底层哈夫曼压缩讲解可能是最详细的Android图片压缩原理分析(四)—— 大图加载优化(防止OOM)...
2021-11-30 22:05:27
2258
1
原创 可能是最详细的Android图片压缩原理分析(三)—— 底层哈夫曼压缩讲解
、Android Skia 图像引擎在上文中,提到的Skia是Android 的重要组成部分。Skia 是一个 Google 自己维护的 c++ 实现的图像引擎,实现了各种图像处理功能,并且广泛地应用于谷歌自己和其它公司的产品中(如:Chrome、Firefox、 Android等),基于它可以很方便为操作系统、浏览器等开发图像处理功能。Skia 在 Android 中提供了基本的画图和简单的编解码功能,可以挂接其他的第三方编码解码库或者硬件编解码库,例如 libpng 和 libjpeg,libgi
2021-11-30 22:03:56
3069
原创 可能是最详细的Android图片压缩原理分析(二)—— 鲁班压缩算法解析
第一步进行采样率压缩;第二步进行宽高的等比例压缩(微信对原图和缩略图限制了最大长宽或者最小长宽);第三步就是对图片的质量进行压缩(一般75或者70);第四部就是采用webP的格式。经过这四部的处理,基本上和微信朋友圈的效果一致,包括文件大小和显示效果...
2021-11-30 22:02:58
6181
1
原创 可能是最详细的Android图片压缩原理分析(一)—— Android图片压缩必备基础知识
关联:bitmap、哈夫曼压缩、png、jpeg、jpg、webp、Android版本采用的压缩策略、内存中和磁盘中bitmap的计算方式Android图片压缩分析(一)一级目录二级目录三级目录位深度inSampleSize 设置图片的缩放比例(宽和高)一级目录二级目录三级目录位深度位深度是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的二进制数值位数来表示的。计算机之所以能够显示颜色,是采用了一种称作“位”( bit ) 的记数单位来记录所表示颜色的数据。当这些数据按照一定的编排方式被
2021-11-30 22:01:08
5212
6
原创 Android Gradle学习(二)
Gradle学习二一、Gradle构建机制1、settings.gradle2、顶层构建文件:build.gradle3、模块的构建文件:build.gradle(1)插件(2)Android(3)依赖包4、Daemon(守护进程)二、Gradle生命周期三、Gradle任务1、Task2、自定义任务四、Gradle命令行一、Gradle构建机制1、settings.gradle Gradle支持多工程构建,使用settings.gradle来配置添
2021-11-01 17:50:00
1802
原创 关于小狐狸版本的AS,编译报错 repository ‘Google‘ was added by build file ‘build.gradle问题完美解决
错误关联:Failed to resolve: 、 repository ‘Google’ was added by build file 'build.gradle首先我导入一个库后编译项目遇到这样的问题:出现Failed to resolve: com.github.chrisbanes:PhotoView的问题,你们的工程可能报各种库的问题,但开头都是Failed to resolve:com.github.xxxx.xxxx则应在项目的 build.gradle 添加如下: ma.
2021-10-21 10:51:40
2116
原创 关于Android 的ViewBinding和<merge>标签冲突的问题解决
我们在使用include的时候给被引入的布局添加一个id,如下所示:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orienta
2021-10-07 15:59:37
1893
原创 Android Room 数据库常见报错missing database
常见错误1:D:\AndroidProjectsDemo\JetpeckTest\app\build\tmp\kapt3\stubs\debug\com\example\jetpecktest\room\BookDao.java:15: 错误: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: BookEntity)public abstract java.u
2021-10-05 03:01:37
2618
原创 Android Gradle学习(一)
文章目录一、Gradle及Groovy简介1、Gradle及自动化构建(1)Gradle介绍(2)为什么要学习Gradle(3)关于项目构建(4)安卓自动化构建发展史(5)Gradle提供了什么2、Groovy介绍1、Gradle及Groovy简介2、Groovy基础到进阶3、Gradle入门4、Gradle构建5、Gradle任务6、Gradle插件7、自定义Android Gradle工程8、Android Gradle多项目构建9、Android Gradle多渠道构建10、And
2021-09-23 14:36:43
859
原创 Android layout常用属性
前言:这里记录一些常用我又不好记的一些layout用的属性,以便我日后忘记好过来迅速查找,仅供参考,后续还会补充,未完待续。。。LinearLayout水平居中android:layout_gravity="center_horizontal"android:gravity="center"gravity是设置自身内部元素的对齐方式layout_gravity是设置自身相当于父容器的对齐方式比例划分android:layout_width="0dp"android:layo
2021-09-13 17:17:01
867
原创 Android关于EventBus报错解决方法its super classes have no public methods with the @Subscribe
关联EventBus、RxBus、androidStudio、Android异常Subscriber class xxx and its super classes have no public methods with the @Subscribe annotation分析从源码上看,是因为没有注解,反射得到为空。我的代码里是这样写的:一个注册,一个反注册,发现报错,然后一些blog博主说是啥?R8压缩问题之后我开始进行修改,有以下两种方案:方案一关闭R8压缩minifyEnable
2021-07-29 14:17:05
2308
原创 Java重写equals方法就必须重写HashCode方法,这是为什么呢?
Java重写equals方法就必须重写HashCode方法,这是为什么呢?我们知道,HashCode这个方法主要是去生成的唯一标识符,equals是我们在做比较,两个对象是不是一样。往往在业务中,我们需要判断两个业务对象的数据是不是一样的,所以我们需要用HashCode生成一个唯一标识符然后用Equals去做比较。比如因为Set存储的是不重复对象,依据hashCode和 equals方法进行判断,所以Set存储的对象必须重写这两个方法。如果自定义对象作为Map的键,那么必须重写hashcode和
2021-06-23 23:07:05
178
原创 HashMap简单问答总结
1、HashMap的初始长度是怎么计算的?默认是这么实现的给定一个数,例如12, 先往右移1位,或上之后再移2位,或之后再移4位等等,一直移到16位叫返回给定目标容量的二次幂。2、 HashMap是怎么计算的高16位和低16位 先做异或运算 再与 1111 做 或运算3、 hash插入一条数据先通过hash函数,计算索引,找到数组的位置(如果为空直接放入,若果不为空,遍历整个链表,这里分为两种,如果有值直接复写,如果没有值,则用头插法)4、 扩容是怎么实现的先new一个两倍大
2021-05-23 09:43:11
198
1
原创 Android内存泄漏问题
问题:1、 内存泄漏与内存溢出的区别?2、 垃圾回收机制的原理是什么?3、 什么情况下会出现Android内存泄漏(六大类)4、 什么是内存抖动,造成的本质是什么?(年轻堆与老年堆)5、 怎么处理Crash异常,对于不能定位行数的问题怎么解决1、 内存泄漏与内存溢出的区别?内存溢出指程序在申请内存时, 没有足够的内存空间供其使用,出现out of memory (OOM)。Android系统为每个应用程序申请到的内存有限,一般为64M或者128M等,我们可以在清单文件中进行配置, andr
2021-05-19 22:24:41
208
原创 Android虚拟机的几个面试技术点
技术点:1、JVM,Dalvik与Art三者之间的区别2、那dex和class到底在结构上有什么区别呢?3、 JVM基于栈,栈是什么,程序执行的原理是怎么进行的4、Android 虚拟机中寄存器起什么作用,与栈的区别在哪里5、Arm指令究竟是什么指令,能说说它与字节码指令的区别吗?6、为什么Art虚拟机比Dalvik虚拟机运行速度高7、 Art虚拟机在执行一个含有main函数,堆内存的分布是怎么的首先,为什么要了解虚拟机?我觉得主要有以下几点:1、 对虚拟机运行流程有一个深刻认知,
2021-05-18 20:23:03
289
原创 Android开发之Glide分析
本文主要从以下三条主线去分析Glide1、了解请求怎么发送的,有没有队列,怎么维护的2、生命周期怎么回事,Glide怎么去做的?3、Glide是如何处理我们的请求的首先先说一下Glide跟其他框架相比优势在哪里?1:生命周期的管理2:支持gif picasso也支持gif3:三级缓存,内存缓存中还分为活动缓存和内存缓存;活动缓存指得是讲正在使用得图片用弱引用缓存,使用完成后到内存缓存;再到磁盘缓存;4:占用内存小,它默认得编码格式是rgb565; picasso用得argb8888 I
2021-05-11 22:08:42
246
原创 Android 开发之AMS服务执行流程
1、Activity的管理与生命周期执行机制2、ActivityThread源码分析3、Apk的启动流程与Activity启动机制AMS 可以通过以下三个维度去看一、Activity 启动过程可以说明AMS的作用二、AMS与ActivityThread的交互关系 系统机制三、hookams 启动Activity 会去调用哪些AMS首先可以看一下Android 的启动流程然后我们可以回顾以下Activity 的启动流程,打开一个应用程序时,第一眼看到的并不是主程序的界面,而是一个类
2021-05-10 22:49:10
650
原创 Andorid 开发之OKHttp源码分析
问题概述:1、 OSI模型2、 Http协议概述3、 为什么OKHttp使用Socket而不是HttpUrlConnection4、 OKHttp的核心类有哪些?5、 OKHttp流程6、 构建者/责任链模式在OKHttp中的使用7、 OKHttp是如何通过缓存相应数据来减少重复的网络请求8、 OKHttp对于网络请求都有哪些优化1、OSI参考模型2、 Http协议1.0 版本,短链接,客户端和服务器每次交互要经过 三次握手,四次挥手,传10次数据,要经过70次1.1 版本 ,
2021-05-10 22:47:35
176
原创 Android的键盘收起问题
关键代码已经贴出来了, 你可以把他们写成一个工具类或者一个方法。InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);使用的话这么用:KeyBoardUtil
2020-12-07 21:00:19
486
原创 Android遇到代理,设置build.gradle,方便下载资源
设置build.gradlebuildscript {repositories {maven { url ‘https://maven.aliyun.com/repository/central’ }maven { url ‘https://maven.aliyun.com/repository/public/’ }maven { url ‘https://maven.aliyun.com/repository/google’ }maven { url ‘https://maven.aliyun
2020-10-10 10:54:22
246
原创 office安装找不到office.zh cn的解决办法
最近需要用到visio画流程图,下了一个2013版的,结果出现了office安装找不到office.zh cn。先按照百度的办法,打开在“我的电脑”加载CD驱动器,找到所缺失文件的文件夹Office.zh-cn,然后加载Visio 2013镜像,和加载Office 2013镜像相同,或者直接用解压工具解压,结果发现我并不会操作哈哈哈 ,把复制的Office.zh-cn文件夹粘贴到Visio 2013 的文件夹中,双击setup.exe即可进行安装向导。这个你们会操作吗?反正我是没看懂这个visio 201
2020-08-07 22:07:32
4782
原创 Android基础知识之内层的build.gradle分析
// 第一行应用了一个插件,一般有两种值可选:com.android.application表示这是一个应用程序模块,//com.android.library表示这是一个库模块。应用程序模块和库模块最大的区别在于,一个是可以直接运行的,一个只能作为代码库依附于别的应用程序模块来运行apply plugin: 'com.android.application'// 这是一个很大的Android闭包,在这个闭包中我们可以配置项目构建的各种属性。android {// compileSdkVersio
2020-07-18 16:08:10
141
原创 Android基础知识之网络通信
Android基础知识之网络通信1、HTTP通信方式1.1、HttpClient接口 - get 方式:1.2、HttpClient接口 - post 方式:1.3、get/post请求的区别:1、HTTP通信方式1.1、HttpClient接口 - get 方式:// 用 HttpClient发送请求,分为五步// 第一步:创建HttpClient对象HttpClient httpClient = new DeafaultHttpClient();String url = "http:/
2020-07-15 21:59:33
260
原创 Python 列表、元组、字典、集合的区别
Python 列表、元组、字典、集合的区别一、列表1.任意对象的有序集合列表是一组任意类型的值,按照一定顺序组合而成的2.通过偏移读取组成列表的值叫做元素(Elements)。每一个元素被标识一个索引,第一个索引是0,序列的功能都能实现3.可变长度,异构以及任意嵌套列表中的元素可以是任意类型,甚至是列表类型,也就是说可以嵌套4.可变的序列支持索引、切片、合并、删除等等操作,它们都...
2020-07-14 14:44:48
1100
原创 Android基础知识之多线程
Android基础知识之多线程1、为什么使用多线程2、多线程的实现方法3、线程间通信4、 线程安全1、为什么使用多线程防止ANR什么是ANR(Application Not Responding)主线程阻塞Activity的最长执行时间是5秒BroadcastReceiver的最长执行时间是10秒Activity Manager/Window Mangager Service 监视提高用户体验上传/下载文件时大文件读取/写入时其他的耗时操作2、多线程的实现方法Ja
2020-07-14 14:39:48
86
原创 2D图形应用的场景
Android基础知识之2D图形1、2D图形应用的场景2、Graphics 概述2.1、Paint类2.2、Color类2.3、Canvas(画布)2.4、Canvas绘制几何图形2.5、Canvas绘制字符串2.6、绘制图像2.7、图像缩放旋转处理2.8、图像像素操作实现特效2.9、获得屏幕分辨率3、Animation概述3.1、Tween动画3.2、在xml中实现Tween3.3、Frame动画3.4、播放GIF1、2D图形应用的场景当现有View已经不能满足我们的需求时,我们需要绘制自己的Vie
2020-07-13 15:35:31
751
原创 Android基础知识,查漏补缺(一)
Android基础知识,查漏补缺查漏补缺第一课1、什么是JDK?2、Android系统架构概览3、Intent-filter是干啥的4、AndroidManifest.xml分析5、”value”子目录6、Fragment6.1、谈一谈Fragment的生命周期生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入参考: ①Java
2020-07-12 15:46:18
669
1
原创 Android小白看过来,跟我一起学Android之真机调试环境搭建
真机调试环境搭建将测试机和开发机通过USB连接通过命令查看USB连接情况:lsusb查找你的手机所连接端口的ID: ID =17ef创建Android真机的USB规则:gedit /etc/udev/rules.d/android.rules //注意权限#SomeDeice 17efSUBSYSTEM=="usb",SYSFS{idVendor}=="17ef",MODE="0666"更改权限并重启usb服务更改权限:sudo chmod a+rx/etc/udev/rule
2020-07-03 13:57:21
217
原创 python中的django库遇到打不开manage.py的问题
python: can't open file 'manage.py': [Errno 2] No such file or directory1、小白入门django遇到的小问题2、django 开发为什么需要虚拟环境3、安装虚拟环境4、创建虚拟环境1、小白入门django遇到的小问题当你入门Django时,想要启动服务时,报的错误是这样:python: can’t open file ‘manage.py’: [Errno 2] No such file or directory或者是这样:F
2020-06-07 22:21:04
3159
WinMerge-2.16.0-x64-Setup.exe
2020-12-23
ip_test.rar
2020-10-14
PL2303_Prolific_DriverInstaller.exe
2020-09-25
MediaSessionDemo.zip
2020-09-04
568-android-termux-app.rar
2020-08-26
SW_DVD5_Visio_Pro_2013w_SP1_64Bit_ChnSimp_MLF_X19-36392.ISO
2020-08-07
01.Android应用基础编程.rar
2020-07-15
envirInstall.rar
2020-07-15
adb_instructions.txt
2020-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人