自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

热爱技术

只要来日可期,今天就值得欣喜

  • 博客(62)
  • 资源 (24)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android开发中一些有用的命令积累

这里专门收集各种命令,后面会一直完善。Gradle的一些操作命令。adb的一些操作命令。

2021-01-25 20:14:01 784 1

原创 AGP7.0依赖版本管理version catalogs

使用versionCatalogs创建分组,在每个组中可以使用library、bundle 、version、plugin创建版本管理。2、libs.version.toml文件里面编写version 、plugins、libraires、bundles。1、在工程目录下创建一个libs.version.toml文件,如下图。2,比如在app模块中引入plugin依赖[app.gradle]1、在项目的build.gradle模块中加入老的依赖。1、在setting.gradle中做如下操作。

2023-11-05 15:13:44 1048

原创 Installed Build Tools revision 33.0.0 is corrupted. Remove and install again using the SDK Manager

将上面两个文件中的d8名称修改成dx,问题就解决了;

2022-10-19 11:51:54 1973 1

原创 Android之gradle自定义插件实现

Build script 脚本 —— 把插件写在build.gradle文件中,一般用于简单的逻辑,只在该build.grade文件可见buildSrc目录 —— 将插件源代码放在buildSrc/src/main中,只对该项目可见独立项目 |—— 一个独立的Java项目/模块,可以将文件包发布到仓库(Jecenter,Maven),使其他项目方便引入

2021-11-27 20:12:11 3854 2

原创 jni笔记

首先定位到build/intermediates/javac/debug/classes下面。首先定位到Adnroid工程的java目录下执行。1、首先在gradle中配置。2、其次在c文件中导入。

2021-01-24 13:10:18 563

原创 解决 Program type already present 问题

`打包报错: Program type already present: com.ohmerhe.kolley.image.Image$ImageListener`从远程更新一下代码以后报了上面的错误,“Program type already present:”考虑是系统编译之后出现的问题,就先clean project之后就解决问题了!记得以后代码有更新项目跑不起来的时候记得 clean project、clean project、clean project重要事情说三遍!!!...

2021-01-18 22:30:03 16815 1

原创 底部菜单控件BottomNavigationView的使用

BottomNavigationView实现底部导航栏的整体效果如下图所示:基本使用BottomNavigationView控件的主要属性含义:控件点击时候颜色选择@color/sl_color_green_grey完整的MainActivity代码运行的效果图如下:item多的时候,指的是item非选中状态显示文字,有以下几个值:它们依次运行如下图所示auto和select和i 属性sShifting有关此时isShifting=true;你会发现auto和 selected的效

2021-01-16 03:17:04 17159 22

原创 gradle依赖冲突的解决方式以及开发中遇到的相关问题

在当前项目开发过程中引入了了腾讯云对象存储COS的库文件之后,implementation 'com.tencent.qcloud:cosxml:5.5.5'项目死活都跑不起来;报了以下的错误:完整的错误日志如下: java.lang.NoSuchMethodError: No virtual method getHttpUrlChecked(Ljava/lang/String;)Lokhttp3/HttpUrl; in class Lokhttp3/internal/Internal; or

2021-01-14 12:55:01 5803 4

原创 安卓proguard代码混淆以及反编译工具

混淆以及反编译那些事儿含义解释:- 压缩(Shrink): 检测并删除未使用的类,字段,方法和属性。- 优化(Optimize): 分析并优化方法的字节码。- 混淆(Obfuscate): 使用简短的无意义名称例如a,b,c等,重命名类,字段和方法。- 预检(Preveirfy): 主要是在Java平台上对处理后的代码进行预检。#### 输入/输出配置项```groovy@filename```

2021-01-04 03:13:03 1410

原创 解决使用BottomSheetDialog底部虚拟导航栏NavigationBar的颜色

最新版本的BottomSheetDialog状态栏发黑问题已经没有了但是虚拟导航栏还是会发黑。华为手机在使用BottomSheetDialog的时候底部虚拟导航栏总是黑色的看着和App整个UI不搭配这里可以看到底部是黑色,要想解决需要单独为底部虚拟导航栏设置一下 @RequiresApi(api = Build.VERSION_CODES.M) private void setWhiteNavigationBar(@NonNull Dialog dialog) { Wi

2021-01-02 00:22:17 6015 6

原创 Retrofit的解析

网络框架Retrofit的源码解析1.如何使用Retrofit网络框架1.1 首先定义一个接口类public interface RemoteService { @GET("/user/{path}/name") Call<ResponseBody> getUser(@Path("path") String str);}1.2 Retrofit的网络代码...

2019-12-21 20:50:06 10359

原创 Drawable与Bitmap转换方法

Drawable和Bitmap相互转换

2019-11-18 15:17:13 2002

原创 Path.setFillType()方法小结

Path.setFillType()用法这个方法用来判断图形的某个点是属于外部还是内部Path添加的图形是带有方向的 ,比如下面path添加一个圆形;Path.addCircle(getWidth() / 2, getHeight() / 2 + 150, 150, Path.Direction.CCW);第四个参数代表的是图形的方向,有两个Path.Direction.CW(顺时针)......

2019-11-13 15:35:41 1138 2

原创 约束布局ConstraintLayout看这一篇就够了

真的很有必要学习约束布局和它的辅助布局,因为它可以做出很多好看的效果,且性能高;比如这个ConstraintHelper,效果如下图所示:喜欢的可以继续往下看,不夸张的说,约束布局和其辅助布局的相关的这里都有,而且很详细;引入androidx的constraintlayout的lib相对定位基本定位属性如下表,意思好比就是那一条边和那一条边对齐,比如设置B控件的属性 layout_constraintLeft_toLeftOf=“@id/A”就表示B控件的左边对齐A控件的左边,会收到这个约束。

2019-09-12 15:53:12 5181 2

原创 AndroidStudio编译不过报 :Device supports,but APK only supports.....

AndroidStudio的开发中偶尔出现下面这样的问题:Device supports,but APK only supports…就像下图这样:出现这个问题的原因是因为,当前APK支持的系统cpu架构中,手机是不支持的;手机一共有7中,armeabi、armeabi-v7a、arm64-v8a、mips、mips64、x86、x86_64;图片中的手机设备支持 armeabi、a...

2018-12-30 12:59:53 30097

原创 时间复杂度,插入排序,冒泡排序,选择排序

理解时间复杂度,插入排序,冒泡排序,选择排序什么是时间复杂度就是近似于约等于算法总的执行的次数;说白了时间复杂度就是近似约等于算法中常数操作的次数;时间复杂度使用O(n)(可以读big O n)来表示在一个算法之中,算法常数操作次数 * 每个数的常数操作的时间 = 算法总执行的时间;什么是常数操作一个样本执行和数量没有关系,每次都是固定时间完成,叫做常数操作。比如两个数加减乘除赋值...

2018-12-27 17:45:32 7220 2

原创 华为Android 8.0以上悬浮窗权限正确开启方式

Android 8.0以上悬浮窗权限正确开启方式开发中在android 8.0上遇到了一个判断悬浮窗权限是否开启的问题,当在一个界面弹出dialog提示用户开启悬浮窗权限,用户点击之后,跳转到设置界面开启悬浮窗权限,然后返回该页面,Settings.canDrawOverlays(context) 进行权限开启的判断,结果返回的是false;程序接收到的是权限没有开启,但是到设置里面查看确实是开......

2018-09-20 14:52:16 24927 13

原创 AppBarLayout中的五种ScrollFlags使用方式汇总

AppBarLayout通过设置layout_scrollFlags参数,来控制AppBarLayout中控件的行为ChildView : 就是AppBarLayout内的某个孩子控件;ScrollingView : 就是可以滚动的View;比如RecyclerView,NestedScrollView等,这里可以滚动的View只支持实现了NestedScrollingChild接口的View。通过在ScrollingView上面设置了 app:layout_behavior=“@string/appba

2018-05-11 16:24:08 36837 7

原创 TabLayout使用介绍(com.google.android.material.tabs.TabLayout)

指示器的标签分为两种情形,一种是固定的一般3~5个标签,另一种的移动的标签;开发中经常会使用MD风格的TabLayout控件,这个控件什么都很好,就是指示器的下滑线和文字不能够对齐,这一点用过的同学都会知道的,我也在网上找了好久,也找到不到现成的,只好自己动手来写一个啦! 先声明一下,我是吧指示器标签分两种情形来写的,固定和不固定,没有合并,因为不是继承同一个控件;另外要多看看TabLayout的...

2017-10-07 18:38:45 28669 10

原创 自定义Dialog实现弹幕发送框界面

做弹幕开发的时候有时候需要一个弹幕输入的界面是必不可少的;下面我们通过一个自定义Dialog快速实现这一功能,效果就像下面这样;这种界面自己动手在xml布局里面很难搞,几乎弄不了,特别很难入手,一时也很懵逼,群里看到有人说用Dilaog来实现,就可以;果然使用Dialog很快就实现了;思路是这样:1,首先自定义一个Dialog ,Dialog里面包含EditText

2017-09-26 20:17:50 1573

转载 fiddler 手机 https 抓包

fiddler手机抓包原理fiddler手机抓包的原理与抓pc上的web数据一样,都是把fiddler当作代理,网络请求走fiddler,fiddler从中拦截数据,由于fiddler充当中间人的角色,所以可以解密https下面开始手机抓包设置教程设置fiddler抓包File—–>勾选capture traffic设置抓https和解密httpsT

2017-05-19 09:47:48 5271 1

原创 Android中获取资源的id和url方法总结

一,获取android工程里面的各种资源的id; 1.1 string型 比如下面: << string name=”OK”>> 客户端请求成功 << / string>>//string资源中 名称为OK的 id 获取方式int strId = getResources().getIdentifier("OK", "string", getPackageName());1.

2017-05-13 22:22:32 9142

原创 Android ViewGroup触摸反馈传递

在Android的UI的事件派发,我们只需要掌握两种:Vew和ViewGroup;其中ViewGroup是继承自view,只不过ViewGroup可以包含子View,对于View的事件传递的派发上一篇文章已经详细介绍分析了一遍,View的事件传递源码详细解析本篇文章我们就仔细分析ViewGroup的事件派发机制;先说一下,本来还是想用2.2的源码从头到尾仔细分析一遍,在看源码的过程之中,发现

2017-05-08 21:32:43 10538 1

原创 Android View的事件传递

View是Android中最小的基本的的UI的控件,当触摸事件传递到它的时候基本上就是最后一个处理事件的控件;它不同于ViewGroup,它没有其他的子类;并且View的事件传递的源代码是最好掌握的,所以在这里认真分析源代码,学习记录一下;源代码使用android2.2的源码,因为这个版本的View事件源代码最简单,最直接;很利于学习,而5.0的看了半天晕晕的,android从2.2到5.0的源代

2017-04-30 18:55:09 11000 1

原创 友盟多渠道打包 Android Apk

目前项目中使用到了多渠道打包的功能,首先理解多渠道打包,渠道可理解成安卓apk应用市场平台,所以多渠道打包可以理解成在打包多个应用市场的apk,要在每个应用市场上打包一个安卓Apk,这样好处是可以在查看apk在每个安卓市场的下载量,活跃度,便于公司进行重点运营和推广,因为友盟多渠道统计比较成熟,所以公司采用的是友盟的多渠道打包统计;点击官网 友盟+ 应用统计多渠道打包的步骤: 1,首先去到上面官网

2017-04-14 18:59:25 11377

原创 一个字符串中查找另一个字符出现的全部索引位置(JAVA)

开发中遇到要将某些字符文本使用SpannableStringBuilder替换成一个表情,这时候需要遍历这个字符串中特定字符出现的全部索引位置,代码如下: private String key = "*"; private String str = " * **M*1*R"; private void searchAllIndex() { int a = str.

2017-03-25 20:02:29 40355

转载 Android手机 Fildder真机抓包

Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式。对于A

2017-03-24 19:06:24 644

转载 Git恢复之前版本的两种方法reset、revert(图文详解)

Error running app: This version of Android Studio is incompatible with the Gradle Plugin used. Try disabling Instant Run (or updating either the IDE or the Gradle plugin to the latest version)这个

2017-03-13 20:25:53 12037

转载 AndroidStudio-调节主题代码编辑区和LogCat字体大小和背景颜色

前言:AndroidStudio的字体默认是很小的,看着很费眼,为了让写代码的过程享受一点,还是要调整一下滴.步骤:1.改变代码编辑区的字体大小2.修改代码编辑区的背景色专家建议的颜色,淡绿色,俗称豆沙绿(#BEEDBE)3.改变LogCat输出的字体大小

2017-03-11 22:39:29 2365

转载 最全的 Charles 抓包工具详解

昨天开发过程中,build时出现异常,错误消息如下:Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:Error:Execution failed for task':app:mergeDebugResources'.>Error:java.util.c

2017-02-10 11:55:03 19532

原创 Fragment(碎片)的生命周期和操作方法

从一个大神哪里看到的Activit和Fragment比较全的生命周期图,很详细全面,所以忍不住要剽窃一番!原文链接:The Complete Android Activity&Fragment Lifecycle这里感谢作者辛勤劳动和付出!

2017-01-10 23:17:59 10186 1

原创 注解Annotation

java从JDK1.5开始增加了Annotation(注解)的功能,可以对类、构造方法、成员变量、方法、参数等进行声明;不会影响程序的运行,在程序运行的时候还可以通过反射读取这些信息;2.注解的分类按照运行机制分成3类1.源码注解 注解只在源代码中存在,编译成class的时候就不存在了2.编译时注解 注解在源码和class文件中都存在3.运行

2017-01-04 18:35:19 832

原创 Paint(画笔)setXfermode的设置PorterDuffXfermode特效模式

一、为什么只说PorterDuffXfermode?1.提到Xfermode,现在查看API文档会发现它有三个子AvoidXfermode,PPixelXorXfermode,PorterDuffXfermode.前两个子类在API16的时候已经过期了,现在去查看Api最新文档,你会发现只有PorterDufferXfermode一个子类.画笔Paint的setXfermode(Xfe...

2016-12-31 18:56:41 1568

原创 Android中的裁剪中Region.Op参数的用法

在Android自定义View使用绘图的裁剪功能的时候,我们最好manifest中的<application/> 或者<activity/>或者<fragment/>标签中添加如下属性android:hardwareAccelerated="false"因为裁剪功能是不支持硬件加速的.没有设置的话,有可能绘图裁剪的效果出不来;Android Can...

2016-12-18 20:19:08 15593

原创 理解Android多线程里面三种任务Runnable和Callable和FutureTask的用法

1.Runnable 和Callable和FutureTask的区别相同点:都属于线程池中要被运行的任务;不同点: Runnable是无返回值的任务,可以在线程中使用 Callable是有返回值的任务 ,不可以在线程中使用 FutureTask是有返回值,而且更易于管理和控制的任务,不可以在线程中使用;...

2016-12-08 17:06:52 6241 2

转载 Android Studio使用技巧---良心推荐的实用功能

比起Eclipse,AndroidStudio简直好用得不要不要的,谈谈心得体会Live Templates啥也不说了,就是电影里黑客那种『随便敲几下键盘 就蹦出一屏代码』的逼格~随便输入了个logd、Toast、starter、tag就蹦出这么多代码,你说酷不酷,这就是Live Templates啥,你说你输入tag,没反应,OK我们来定义一个就是,按

2016-12-06 14:49:25 957

原创 图的定义和各种术语总结

图的定义 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成; 通常表示为:G(V,E),G表示一个图,V是图G中顶点的集合,E是图G中边的集合; 注意: 在图中数据元素称之为顶点(Vertex),而且顶点集合有穷非空, 在图中任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示; 图的分类 1,按照有无方向,分为无向图和有向图; 无向图 如果图中任

2016-11-24 00:49:34 14460 7

原创 队列的顺序存储结构之循环队列

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出(First In First Out)的线性表,简称FIFO.允许插入的一端称为队尾,允许删除的一端称为队头。 队列的顺序存储结构使用数组的实现,假设数组长度为N,这时删除队头元素的时候,这个元素后面的每一个元素都要移动,这样就会出队的性能会下降。如下图所示: 删除队首的元素A1,那么后面的

2016-11-12 10:31:54 2760

原创 栈的顺序存储结构以及实现

栈是限定仅仅在表尾进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何元素的栈称为空栈。 栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。

2016-11-05 09:54:28 620

原创 从内存角度分析,程序中为什么要有class(类)和object(对象)

为什么设计class和object在Java中类和对象都是以dev指令的形式存储在内存中的,class是类,相当于模板,通过它可以制造很多对象object;但是为什么要这样设计呢?下面通过两个方面来理解:

2016-10-13 00:03:20 3105 4

Android MVVM学习使用Demo

Android MVVM学习使用Demo

2022-11-01

DataBinding使用Android

DataBinding使用Android

2022-10-18

BottomNavigation底部菜单

BottomNavigation底部菜单Design

2022-06-29

Android自定义Dialog--DanmakuFlame弹幕发送框界面的实现

Android自定义Dialog--DanmakuFlame弹幕发送框界面的实现

2017-09-26

Plugin1.zip

自定义安卓插件

2021-11-27

TabLayout.zip

TabLayout使用介绍(com.google.android.material.tabs.TabLayout)

2021-11-20

CoordinatorLayout.zip

CoordinatorLayout+Behavior自定义和仿系统的协调布局

2021-11-24

buttonwithprogress.zip

带进度的按钮

2021-01-26

drawable.zip

自定义RadioGroup实现应用市场上的按钮切换效果

2021-01-25

Android中XML的解析Pull//SAX/DOM

XML的三种常用解析方式

2016-05-02

DragViewTest.zip

使用各种方式滑动View

2021-01-22

COSTransferPractice.zip

腾讯云对象存储-直接运行

2021-01-14

InPutEditText.zip

Android自定义View验证码输入框

2021-01-09

颜色提取器COLOR

颜色提取器

2016-05-09

Json格式化工具HiJson2.12_jdk64

HiJson2.12_jdk64

2016-05-09

SQLiteExpertPersSetup.exe

SQLiteExpertPersSetup.exe

2016-05-17

Binder连接池Android

Binder连接池

2016-05-31

属性动画Android3.0以下兼容包

nineoldandroids.jar 兼容Android3.0以下的版本

2016-07-13

仿华为应用市场下载进度条

仿华为应用市场下载进度条

2016-12-18

EditText的清空 查看密码 限制输入空格 最大字数 Android

EditText的清空 查看密码 限制输入空格 最大字数

2016-12-20

友盟多渠道打包 Android Apk

友盟多渠道打包 Android Apk

2017-04-15

LayerDrawable

Android的Drawable运用之----LayerDrawable

2017-09-20

java排序Comparator和Comparable

java排序Comparator和Comparable

2015-09-21

git for windows下载

Git-2.8.1-64-bit.exe

2016-04-30

xml格式解析

xml格式解析

2016-05-02

Android中xml的解析

XML的解析方式

2016-05-02

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

TA关注的人

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