自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (5)
  • 收藏
  • 关注

原创 常用 Git 命令清单

我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [p

2021-08-23 20:29:05 146

原创 HashMap(常用)方法

Hashmap的存值:1 public static void main(String[] ars) {2 ///*Integer*/map.put("1", 1);//向map中添加值(返回这个key以前的值,如果没有返回null)3 HashMap<String, Integer> map=new HashMap<>();4 System.out.println(map.put("1", 1));//null5.

2021-08-09 10:27:42 202

原创 世上最全的View解析攻略

一. View 类概述1. 简介(1) View 类简介View 简介:--基本控件: View 类代表了用户界面组件最基本的构件.--形状作用: View 占据了屏幕中的一个矩形范围, 它负责绘制图像 和 进行事件处理. View 是所有窗口部件的基础, 其用于创建交互式的 UI 组件, 如 Button, TextView, ImageView 等组件.--ViewGroup 布局基础: ViewGroup 子类是布局的基础, 它是一个包含其它 View 或...

2021-07-22 18:29:06 880

原创 RecyclerView的滚动事件OnScrollListener

(1)滚动事件分类列表的滚动一般分为两种:1.手指按下 -> 手指拖拽列表移动 -> 手指停止拖拽 -> 抬起手指 2.手指按下 -> 手指快速拖拽后抬起手指 -> 列表继续滚动 -> 停止滚动上面的过程的状态变化如下:1.静止 -> 被迫拖拽移动 -> 静止2.静止 -> 被迫拖拽移动 -> 自己滚动 -> 静止(2)监听RecyclerView的滚动有两种方式可以监听滚动事件:1.setOnScr...

2021-07-03 10:58:51 511 1

原创 Android量身定做的代码审查利器——Lint

一、Android Lint简介 Android Lint是SDK Tools 16(ADT16,当前笔者使用的ADT已经是26了,所以现在就不用担心自己所使用的SDK中不包含lint工具了)开始引入的一个代码扫描工具,路径为:Sdk\tools\bin\lint.bat。通过它对Android工程源代码进行扫描和检查,可发现潜在的问题,以便程序员及早修正这个问题。通过Lint,无需实际执行应用,也不必编写测试用例,就可以检查Android项目中源文件是否存潜在的错误,以及在正确性、安全性、...

2021-06-21 18:06:46 952 1

原创 Android Stuido通过git push时出现Push failed

1、Android Studio编译器通过git命令push代码出现如下问题:Failed to connect to github.com port 443: Timed out错误。2、解决方案:只需要在project中右键点击git Bash Here输入如下:3、欢迎小伙伴进来点赞,多多支持...

2021-06-16 14:10:15 353

原创 Android 项目开发填坑记 - 使用 MultiDex 解决 64K 限制

背景Android 的 classLoader 在加载 APK 的时候限制了class.dex 包含的 Java 方法数,其总数不能超过65535(64K,不要再说成 65K 了,1K = 2^10 = 1024 , 64 * 1024 = 65535),Google 官方给出的解决方案是使用 Multidex 。启用 Multidex基本要求:使用 Android Studio 开发工具Android SDK Build Tools >= 21.1更新 Android Support R

2021-06-10 09:44:52 236 1

原创 Fiddler配置及使用教程

简介1.什么是抓包?抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。简介1.什么是抓包?抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。Fiddler位于客户端和服务端中间,记录所有Http/Https协议的通信数据,类似于邮局电报员的角色。安装1.Fiddler安装下载地址:h

2021-06-07 09:48:38 164

原创 git 拉取远程代码

在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git,能够上传和下拉最新代码。模拟小白需求:第一步:拉取远程代码git clone [URL]第二步:查看本地分支和远程分支1、cd 到工程目录下;2、git branch -al 查看本地和远程的所有分支。若没有分支的话,先创建自己的分支...

2021-06-05 09:33:40 81

原创 AndroidStudio解决安装apk速度过慢和构建速度慢的问题

AndroidStudio解决安装apk速度过慢1、解决安装Apk速度过慢的问题(1)方法步骤: ①第一步:在as中,help菜单--》选择 Edit Custom Vm Options ②第二步:创建,点击create,复制下面的内容,调大了AS运行的堆内存,重新运行的时候,就会发现速度会快很多。-Xms2048m-Xmx2048m-XX:MaxPermSize=2048m-XX:ReservedCodeCacheSize=2048m2、解决内存吃紧问题(1)问题描述A

2021-06-01 16:24:38 2773

原创 Glide原理之史上最全的(二)

Glide 缓存原理Glide 使用了三级缓存机制,图片的缓存分为内存、磁盘和来源,也就是从内存获取不到图片时,再去磁盘获取图片,从磁盘获取不到图片时,再从图片来源获取图片。三级缓存的优势在于节省流量和内存,如果不用三级缓存,每次都从服务端获取图片的话,图片消耗的流量就会非常多,如果把所有图片都放在内存的话,那就有可能发生 OOM 。下面我们来看下 Glide 的内存缓存原理、磁盘缓存原理和磁盘缓存策略。3.1 Glide 内存缓存原理前面提到 Engine 的 load() 方法会先在内存缓存中

2021-03-31 11:17:51 1472 1

原创 Glide原理之史上最全的(一)

**前言Glide 基本用法接下来的讲解将基于 Glide 目前的最新版本 4.11。Glide 的使用特别简单,首先添加依赖。**with()可以传 Applicaiton、Activity 、Fragment 与 view 等类型的参数,加载图片的请求会与该参数的生命周期绑定在一起。load()可以传图片的网络地址、Drawable 等。into()一般传 ImageView 。内容概览Glide 加载图片大致可分为三个步骤。发起加载图片请求当我们用 into() .

2021-03-31 11:09:17 9995 2

原创 Android中 Manifest清单解析

<applicationallowBackup:是否允许应用程序参与备份(默认为true)用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。allowTaskReparenting:表明这个任务重新被送到前台的时候,该应用程序所定义的Activity是否可以从被启动的任务中转移到有相同亲和力的任务中largeHeap:安卓中对于内存的使用是限定的,担心内存泄漏。但如果真的无法再优化,该怎么办能?3.0以后程序就有largeHeap选

2021-03-26 22:10:19 267

原创 Animation之动画晃动

RotateAnimation:旋转动画,顾名思义,使用该动画,view能产生旋转效果需要在res文件夹下新建arrt文件<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:duration="5000" android:fillAfter="t...

2021-03-24 14:35:20 629

原创 再见SharedPreferences,你好MMKV!

SharedPreferences是谷歌提供的轻量级存储方案,使用起来比较方便,可以直接进行数据存储,不必另起线程。不过也带来很多问题,尤其是由SP引起的ANR问题,非常常见。正因如此,后来也出现了一些SP的替代解决方案,比如MMKV。本文主要包括以下内容1.SharedPreferences存在的问题2.MMKV的基本使用与介绍3.MMKV的原理SharedPreferences存在的问题:SP的效率比较低1、读写方式:直接I/O2、数据格式:xml3、写入方式:全量

2021-03-08 11:57:44 153

原创 CoordinatorLayout组件完美解析

一、CoordinatorLayout 的作用CoordinatorLayout 作为一个 “super-powered FrameLayout”,主要有以下两个作用:作为顶层布局; 作为协调子 View 之间交互的容器。使用 CoordinatorLayout 需要在 build.gradle 加入:4.3 parallax(视差)layout_collapseMode除了使用 pin 固定住 View,还可以使用 parallax,视差的意思就是:移动过程中两个 View 的位置

2020-12-01 13:51:08 484

原创 Scheme协议之插件化必备

什么是 URL Scheme?android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。1、URL Scheme应用场景:客户端应用可以向操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页

2020-11-09 10:44:23 223

原创 SVN与Android Studio的配置

在Android Studio中开发版本控制,除了Git就是SVN(小乌龟),和Eclipse不同的是Android Studio没有提供单独的插件,只能和SVN客户端关联使用,和Eclipse安装有很大区别,今天我就讲下在Android Studio中SVN的安装和配置的一些方法: 一、SVN的安装 [添加链接描述](https://tortoisesvn.net/) 官网 1、找到你的svn安装包,双击, 2、之后选择(modify)修...

2020-11-05 10:46:30 1311

原创 RxJava2.0教程(二)

前言上一节教程讲解了最基本的RxJava2的使用, 在本节中, 我们将学习RxJava强大的线程控制.正题还是以之前的例子, 两根水管:正常情况下, 上游和下游是工作在同一个线程中的, 也就是说上游在哪个线程发事件, 下游就在哪个线程接收事件.怎么去理解呢, 以Android为例, 一个Activity的所有动作默认都是在主线程中运行的, 比如我们在onCreate中打出当前线程的名字:@Overrideprotected void onCreate(Bundle savedInstance

2020-09-24 10:51:42 87

原创 RxJava2.0教程(一)

前言RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过RxJava的朋友可能就不知道怎么办了,不知道该看RxJava1还是直接跳到RxJava2。所以写下这个教程, 帮助那些没有用过RxJava的朋友入门。我先回答这个问题:学习RxJava2需要先学习RxJava1吗?这个问题就像论坛经常问学Java前需要先学习C语言吗,这里就不引战了!(PHP是世界上最好的语言!!)答案明显不是,如果你以前学过RxJava1,那么

2020-09-24 10:32:42 129

原创 Manifest merger failed with multiple errors, see logs解决方案

1、合并优先级清单文件合并是按照优先级进行合并的,低优先级的清单文件内容合并到高优先级的,假如合并的时候产生了冲突就需要解决冲突2、主工程(又区分构建体、渠道、风味) > module(按照依赖关系) > jar 包(aar)。3、合并冲突当低优先级的清单文件属性合并到高优先级中,假如高优先级中没有对应的属性,则直接合并,假如有并且不一样,这时候就有了冲突,应该去解决,怎么解决?4、补充规则:针对要合并的值不一样,该如何去合并呢?这时候就要对一些不同属性的值在不同的情况具体对待?注意

2020-07-15 20:28:58 61255 5

原创 android开发中使用Cipher类实现加密,包括DES,DES3,AES和RSA加密

public static String Encrypt(byte[] secretKey, String encData) throws Exception { if (secretKey == null) { return null; } //1、创建Cipher对象,并且填写三种参数,算法/模式/填充模式 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //2、SecretK

2020-06-29 09:41:19 2260

原创 Android开发之高德地图导航

本次编译开发是根据第三方地图(高德)实现地图导航功能。前言内容我就不在这里详细描述了,大家可参考官网信息查询。前言:1、需要登录高德开发者官网注册用户,绑定相关资料2、注册成功后,需要在控制台,应用管理栏目中,我的应用——进行创建新的应用——系统会自动生成Key补充:在创建新的应用时,需要提供自己的项目中的包名、SHA1码,这两个是整个项目的唯一标识(需谨慎操作)3、完成以上操作后,根据开发业务场景下载相关的SDK,SDK中包含了jar依赖库和so文件如果第一次使用高德地图,建议大家先把官网的D

2020-06-08 11:05:29 4164 10

原创 Android开发Java转Kotlin

废话不多说,看图:一、Java转Kotlin1、选中要转的class类,然后点击code2、点击最下面的:如图好了 ,这就转换完了

2020-06-05 10:20:30 185

原创 Android studio光标变粗无法使用

写代码时,容易按到Insert键,这个按键是让光标变粗的,再按一次Insert就可以切换为正常模式。但是有时候出现的问题总是让自己摸不着头脑。所以我在这里把自己解决方案总结一下:1、 File - Settings - Editor - General - Apperance 取消 Use block caret 的勾选。点击OK ,就搞定了。2、File - Settings - Plugins - Installed 找到IdeaVim插件,将其删除掉。希望对大家有帮助!!!...

2020-05-28 10:57:18 333 1

原创 Gson高级使用和GsonBuilder设置

概述:在开发领域中数据传递有很多形式,通常数据调用交互采用XML,JSON,数据流,纯文本等形式;越来越多数据调用采用JSON,因为JSON数据结构简单,数据字节长度短,既简单又快速何乐而不为呢?从JSON的结构入手,所有json数据最终分为三种情况:标量(Scalar),也就是单纯的字符串或则数字形式序列(Sequence),也就是若干数据按照一定顺序并列在一起又称“数组”映射(Mapping),也就是key/value键值对Gson高级使用1.GsonBuilderGson是通过Gs

2020-05-27 09:11:56 1241

原创 Android开发Kotlin之navigation

Navigation 是 JetPack 中的一个组件,用于方便的实现页面的导航,所以抽象出了一个 destination 的概念,大部分情况一个 destination 就表示一个 Fragment,但是它同样可以指代 Activity、其它的导航图。最初要有个起始页面,叫 start destination,处于栈底,是启动时的第一个页面,当然也是返回可见的最后一个页面。多个 destination 连接起来就组成了一个导航图,类似于一种栈结构,页面先进后出。destination 之间的连接叫做 a

2020-05-21 09:27:27 1560

原创 Android单元测试之辅助工具

在Android Stuido新建过工程的开发者,应该有注意到,该工程默认会新建androidTest及test的测试包。在Android Stuido中,在androidTest编写的单元测试,默认使用jacoco插件生成包含代码覆盖率的测试报告;而test包下的单元测试代码,则直接使用Android Studio已有工具IntelliJ IDEA生成覆盖率,也可以通过自定义gradle task使用jacoco插件生成与androidTest相同格式的测试报告。androidTest 与 test:

2020-05-15 11:28:02 605

原创 git pull时冲突的几种解决方式

忽略本地修改,强制拉取远程到本地主要是项目中的文档目录,看的时候可能多了些标注,现在远程文档更新,本地的版本已无用,可以强拉关于commit和pull的先后顺序,commit——》pull——》push 和 pull——》commit——》push的顺序,两种情况都遇到过代码冲突。解决方法如下:未commit先pull,视本地修改量选择revert或stash2.1 本地修改量小如果本地修改量小,例如只修改了一行,可以按照以下流程-> revert(把自己的代码取消) -&.

2020-05-14 14:05:05 8737

原创 Android开发之build.gradle文件(app)

apply plugin: 'com.android.application' //说明module的类型 com.android.application为应用程序,com.android.library为类库android { compileSdkVersion 25 //编译的SDK版本,最佳选择为最新的API级别 buildToolsVersion "25.0.2" //编译的Tools版本,最佳选择为最新的API级别 de...

2020-05-13 16:48:26 1775

原创 Android主题色无缝切换方案:Databinding下实现控件皮肤无缝切换

无缝切换主题色这个功能一直都是Android的开发经常遇到的。我逛的最多的B站App就是一个很好地例子,他们的皮肤切换是无缝的,那我们自己能不能自己也来搞一个,当然是可以的,虽然有重复造轮子,但是我们还是需要不断锻炼自己的开发水平,尝试不同的方案。Github可以找到一个不错的皮肤切换库:Android-Skin-Loader基于LayoutInflaterFactory的皮肤切换,涉及到LayoutInflater 提供了setFactory(LayoutInflater.Factory facto

2020-05-12 14:13:53 367

原创 Glide与Fresco的对比

Glide:1、多种图片格式的缓存,适用于更多的内容表现形式(如:Gif,WebP,缩略图、Video)2、声明周期集成(根据Activity或者Fragment的生命周期管理图片加载请求)3、高效处理Bitmap(bitmap的复用和主动回收,减少系统回收压力)4、高效的缓存策略,灵活(Picasso只会缓存原始尺寸的图片,Glice可以缓存多种规格的),加载速度快且内存开销小(默认Bitmap格式的不同,使得内存开销是Picasso的一半)Fresco:1、最大优势在于5.0以下(最低2.3

2020-05-12 13:11:57 2489

原创 数据库GreeDao的使用总结

优点1.通常我们在使用GreenDao的时候,我们只需定义数据模型,GreenDao框架将创建数据对象(实体)和DAO(数据访问对象),能够节省部分代码。2.不向性能妥协,使用了GreenDao,大多数实体可以以每秒几千个实体的速率进行插入,更新和加载。3.GreenDao支持加密数据库来保护敏感数据。4.微小的依赖库,GreenDao的关键依赖库大小不超过100kb.5.如果需要,实体...

2020-04-30 15:08:01 420

原创 Kotlin——之JsonToKotlin插件

前言在使用Kotlin进行开发的时候,我们需要经常对Json数据做解析和处理,在Java的类似开发环境中,我们就需要参照Json的数据格式相应的生成对应的JavaBean,在Java开发的时候有GsonFormat这个插件,当然,在Kotlin的开发环境中肯定也不能少了这类插件一.插件的名称:JsonToKotlinClass见名知义,就是把一串Json字段串数据直接映射出一段Kotl...

2020-04-28 09:52:35 1584

原创 Android混淆从入门到精通的路很长

简介作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解。本篇文章的目的就是让一个初学者在看完后,能在不进行任何帮助的情况下,独立写出适合自己代码的混淆规则。说在前面这里我们直接用Android Studio来...

2020-04-27 11:03:17 123

原创 解析Retrofit

Retrofit 是 Square 公司开发的一款针对 Android 网络请求的框架,Retrofit 底层是基于 OkHttp 实现的。与其他网络框架不同的是,它更多使用运行时注解的方式提供功能。1、Retrofit基本用法首先要配置build.gradle2、Retrofit的注解分类Retrofit 与其他请求框架不同的是,它使用了注解。Retrofit 的注解分为三大类:分...

2020-04-27 09:40:50 161

原创 Android清除缓存,清除数据

概念:清除数据、清除缓存的区别清除数据主要是清除用户配置,比如SharedPreferences,数据库等等,这些数据都是在程序运行过程中保存的用户配置信息,清除数据后,下次进入程序就和第一次进入程序时一样缓存是程序运行时的临时存储空间,它可以存放从网络下载的临时图片,从用户角度触发清除缓存对用户并没有太大的影响,但是清除缓存后用户再次使用该APP时,由于本地缓存已经被清理,所有的数据需要重...

2020-04-26 14:47:21 1445

原创 Androud Studio中使用Kotlin集成项目

前言在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。在Google I/O 2019中,Google 宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言,“Android 的开发将越来越以 Kotlin 为先。” 许多新的 Jetpack API 和特性将首先在 Kotlin 中提供。Kotlin将成为An...

2020-04-24 15:45:11 283

原创 Retrofit+RxJava之封装详情

public class RetrofitConf {private static final String BASEURL = “http:// xxxxx”;private static String token;private Retrofit retrofit;private LpyService service;private Boolean isDebug = true;/...

2020-04-24 10:51:27 246

原创 GitLab拉去远程分支到本地

1,在本地创建一个gitHub仓库2,然后右键打开git选择Git Bash Here,弹出命令窗口1》输入git init命令,成功后会在本地文件中看到.git文件2》输入git remote add origin https://xxxxxx (https是gitlab上的项目链接)3》拉去远程到本地,输入git fetch origin【远程分支名】4》最后执行g...

2020-04-23 14:06:19 2421

ShadowDrawable.java

可在不同场景使用方便,无语麻烦UI设计师

2021-07-02

LogIntercepter.java

此文件可搭配在Retrofit2网络框架中,运用在Android Studio编译器后,方可在Logcat中看到请求网络接口后的json数据,清晰,简洁,高效

2021-06-05

外汇汇率计算器calculator

外汇汇率计算器,可方便进行计算外汇的汇率转换,并且能得到对应的值calculatorcalculatorcalculatorcalculator

2020-12-01

TestApplion.rar

此文件是Java源码开发,开发工具Android Studio,包含了多个功能模块开发,如指纹识别,SVG图片实现中国板块,URL链接生成二维码等等

2020-05-20

Readers.rar

快速的掌握音频播放技巧,加油

2019-08-21

空空如也

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

TA关注的人

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