自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

转载 Android实现文本链接可点击

【代码】Android实现文本链接可点击。

2024-03-29 11:32:00 32

原创 Android设计规范及分辨率简介

设计给的2x和3x对应Androidandroid 1x 2x,dpi、ppi、dp、px、分辨率、@1x、@2x、@3x一款APP设计的从0到1之:Android设计规范篇切图常说的@1X@2X@3X是什么意思?Android适配的那些P事

2024-03-20 15:04:35 299

转载 RecyclerView导致父控件点击事件无效

最近有一个需求,RecyclerView外层嵌套了一个FrameLayout,想实现点击整个FrameLayout都能响应一个事件,结果给FrameLayout加上点击事件后,点击RecyclerView范围无效。可能是RecyclerView截获了click事件,阻止了点击的透传,做了以下处理解决。一开始这样改的,可以滑动列表时,容易误触点击事件,后来改良下。

2024-01-17 23:26:03 327

转载 MacOS系统zsh输入所有命令command not found:xxx

然后保存文件并重新启动,source ~/.zshrc的作用是重新加载当前用户的 Zsh shell 配置文件 .zshrc。,同时保留原有 PATH 中的其他目录,确保系统在搜索可执行文件时也考虑了原有的路径,最重要的一点是确保系统能够找到并执行您希望运行的命令。它的作用恰恰是直接将当前 shell 进程的 PATH 环境变量设置为指定的路径列表。

2024-01-09 19:58:10 444

原创 Android Crash

有赞 Android 崩溃保护的探索及实践如何避免Android运行时崩溃,保证程序高可用性一Android开发之打造永不崩溃的APP——Crash防护Android性能优化——崩溃Crash封装库android开发让App永不闪退,永不crash的解决方法深入探索Android稳定性优化 深入探索Android稳定性优化Android NativeCrash 捕获与解析Android 平台 Native Crash 问题分析与定位Android 平台 Native Crash 捕获原理详解

2023-06-29 14:28:56 643

转载 Android Fragment :java.lang.IllegalStateException: Fragment already added

java.lang.IllegalStateException: Fragment already added 解决方式。

2023-06-16 16:19:17 1042

转载 Android网络优化

网络优化的方向主要是流量优化质量优化线下测试以及线上监控方案结合 OkHttp 获取网络请求质量数据,OkHttp 给我们留了一个事件监听器 EventListener 回调,我们可以自己实现这个监听器,监听每一次的请求。自定义 GlideModue 是为了监控图片加载的过程,下面我们来看下怎么监控 Glide 加载图片过程的耗时和相关数据。

2023-05-08 01:30:09 1549

原创 Mac安装和卸载node和npm

Mac端安装和卸载node和npm

2023-04-19 11:49:35 2496 2

原创 Android实现轮播控件Banner

Android的ViewPager实现轮播图

2023-01-02 22:51:58 2227

转载 Mac升级到 MacOS Ventura 13.0 后Gitlab认证失败,提交提示需要密码

mac升级到 macos ventura 13.0 后gitlab认证失败,提交提示需要密码

2022-11-02 18:16:36 811

原创 RecyclerView状态异常Cannot call this method while RecyclerView is computing a layout or scrolling

Cannot call this method while RecyclerView is computing a layout or scrolling

2022-10-08 15:26:30 5631

转载 Android代码混淆

Android混淆规则–proguard-rules.proandroid 混淆规则作用,AndroidProguard

2022-10-08 11:38:42 187

转载 Android代码混淆

Android混淆规则–proguard-rules.proandroid 混淆规则作用,AndroidProguard

2022-09-26 01:27:23 82

原创 Springboot学习

springboot学习

2022-09-11 03:03:26 139

转载 OkHttp用法详解

OkHttp用法详解

2022-06-14 01:52:40 15507 1

原创 从github上clone代码时The unauthenticated git protocol on port 9418 is no longer supported解决方法

找到git的配置文件.gitconfig文件,在文件中加入以下配置即可[url "https://"] insteadof = git://[url "https://"] insteadof = ssh://

2022-05-10 01:19:40 545 1

原创 Android实现圆形头像

ClipPathimport android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Path;import android.grap

2022-02-18 19:45:46 2224

原创 Lottie-Android详解

Lottie是什么Lottie是Airbnb开源的一套跨平台的、完整的动画效果解决方案,适用于 Android、iOS、Web 和 Windows 平台,它解析使用 Bodymovin 导出为 json 的 Adob​​e After Effects 动画,并在移动设备和 Web 上本地呈现它们!如下图:以下是Lottie官网给出的一些动画效果 Airbnb为什么要做Lottie1、为什么要使用LOTTIE?先看看在没有Lottie之前我们实现复杂动画的方式:使用GIF,占用空间大,有些动画

2021-12-23 01:56:53 14855 2

转载 Android手机导出日志文件

我们平时排查一些app线上问题时,除了需要排查后端接口数据以外,还需要抓去用户手机端的日志文件来一起排查,如何抓去Android端日志文件,接下来一一讲解,以Macbook-Pro为例。方式一:使用USB连接在手机上启用USB调试在终端输入adb devices 获取日志只连接一个设备:清除已缓存日志:adb logcat -c获取日志并保存到本地:adb logcat >~/Desktop/a.txt (本地目录可自行定义)在终端使用快捷键 Ctrl+C 停止日志获取连接

2021-12-01 15:15:43 4959

翻译 JavaPoet使用详解

JavaPoet 是用于生成 .java 源文件的 Java API。在执行诸如注释处理或与元数据文件(例如,数据库模式、协议格式)交互等操作时,源文件生成非常有用。通过生成代码,您无需编写样板,同时还为元数据保留了单一的真实来源。例子这是一个(无聊的)HelloWorld 类:package com.example.helloworld;public final class HelloWorld { public static void main(String[] args) {

2021-11-23 23:25:19 5488

转载 约束布局Constraintlayout使用解析

1.简介约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout。ConstraintLayout 官方文档2.为什么要用ConstraintLayout在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多。

2021-11-03 16:42:34 1348

原创 Android实现可以上下滑动的panel

背景用过美团和滴滴的朋友都知道,他们都有一个可以上下滑动的面板,能够实现上滑,下拉和悬停,那么要怎么实现呢,下面我们就来简单探讨下。使用ViewDragHelper实现思路:这是一个底部抽屉,它可以悬停在中间,随着滑动自然过渡到全屏。它是仿照DrawLayout设计实现的,只不过是竖直方向的,内部通过ViewDragHelper实现,具体参照以下实现Android 简易悬停抽屉控件 —— 仿知乎收藏夹 fashare2015 /HoverView umano /AndroidSliding

2021-10-07 22:26:06 1727

原创 Android EditText使用总结

设置EditText的背景通过设置以下属性来设置EditText的背景 android:background="@drawable/decoration"decoration.xml 的内容<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> &lt

2021-08-13 18:40:16 3132

转载 Android ImageView的scaleType详解

ImageView 是 Android 中最常用的控件之一,而在使用ImageView时,必不可少的会使用到它的scaleType属性。该属性指定了你想让ImageView如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。Android 提供了八种scaleType的属性值,每种都对应了一种展示方式,下面就对每一种scaleType属性值进行解释。ImageView的scaleType的属性值有MATRIX,FIT_XY,FIT_START,FIT_END,FIT_CENTER,CENTER,

2021-07-22 18:28:32 27097 1

原创 修改CardView的阴影颜色

通过暴露自定义view的阴影属性或者反射来设置CardView的阴影颜色demo传送门参考如何设置 CardView 阴影颜色利用反射设置CardView阴影颜色

2021-05-26 16:32:31 1563

转载 java 传递参数的两种方式

Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。a.传递值的数据类

2021-05-25 01:12:32 2555

原创 Android NDK学习

Android NDK 从入门到精通(汇总篇)NDK 之 打印Log日志

2021-04-26 00:18:49 106

转载 c语言中external,static关键字用法

static用法:在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量,全局静态变量有以下特点。a.在全局区分配内存。b.如果没有初始化,其默认值为0.c.该变量在本文件内从定义开始到文件结束可见。2、定义局部静态变量:在局部变量前面加上关键字static,其特点如下:a.该变量在全局数据区分配内存。b.它始终驻留在全局数据区,直到程序运行结束。c. 其作用域为局部作用域,当

2021-04-25 10:58:26 336

转载 计算机按位去反计算方法

背景“反码”,“取反”,“按位取反(~)”,这3个概念是不一样的。取反:逻辑非“!”,逻辑取反, false变true,true变false,在C中,只要不是0就是真,所以!5值是0反码:正数的反码是其本身,对于负数其符号位不变其它各位取反(0变1,1变0)按位取反(~): 按位取反1变0,0变1。要弄懂这个运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的。另外正数和负数的补码不一样,正数的补码、反码都是其本身,负数的反码等于原码符号位不变,其余

2021-03-26 16:21:01 2919

原创 Android的View加id与不加id的区别

【Android面试】(二):你不能不知道的view—加id和不加id的区别?

2021-03-24 14:47:57 403

原创 Android Studio中Gradle从命令行构建应用和配置编译版本

从命令行构建您的应用您可以使用 Gradle 封装容器命令行工具执行 Android 项目可用的所有构建任务。它可作为 Windows 的批处理文件 (gradlew.bat) 和 Linux 与 Mac 的 shell 脚本 (gradlew.sh) 使用,而且您可以从使用 Android Studio 创建的每个项目的根目录启动该工具。如需使用封装容器运行任务,请在终端窗口中(在 Android Studio 中,依次选择 View > Tool Windows > Terminal)使

2021-03-14 23:46:58 3348

原创 Android应用内换肤

换肤简介换肤本质上是对资源的一种替换包括、字体、颜色、背景、图片、大小等等。比如View的修改背景颜色setBackgroundColor,TextView的setTextSize修改字体等等。换肤方案目前Android换肤有两种类型,静态换肤和动态换肤;静态换肤就是将所有的皮肤方案放到项目中,而动态换肤则就是从网络加载皮肤包动态切换;通常静态换肤是通过Theme实现,通过在项目中定义多套主题,使用setTheme方法切换的方式实现换肤;动态换肤是通过替换系统的Resouce动态加载下载到本地的

2021-03-07 22:43:52 834 1

转载 kotlin-android-extensions和ViewBinding

背景在kotlin-android-extensions和ViewBinding出现之前,我们进行View控件的实例化通常都是使用findViewById或者ButterKnife之类的第三方库,总的来说就是需要写很多重复且无意义的代码。接下来我们就来介绍kotlin-android-extensions和ViewBinding的使用。使用kotlin-android-extensions插件1.首先在模块的 build.gradle文件中启用 Gradle 安卓扩展插件即可apply plug

2021-03-04 13:49:05 1577 1

转载 Android10和Android11作用域存储Scoped Storage详解

理解作用域存储Android长久以来都支持外置存储空间这个功能,也就是我们常说的SD卡存储。这个功能使用得极其广泛,几乎所有的App都喜欢在SD卡的根目录下建立一个自己专属的目录,用来存放各类文件和数据。那么这么做有什么好处吗?第一,存储在SD卡的文件不会计入到应用程序的占用空间当中,也就是说即使你在SD卡存放了1G的文件,你的应用程序在设置中显示的占用空间仍然可能只有几十K。第二,存储在SD卡的文件,即使应用程序被卸载了,这些文件仍然会被保留下来,这有助于实现一些需要数据被永久保留的功能。然而,这些

2021-03-03 22:50:29 3746 1

转载 Android Jatpack App Startup使用详解

简介App Startup提供了一种在应用程序启动时初始化组件的简单、高效的方法。库开发人员和应用程序开发人员都可以使用应用程序启动来简化启动序列并显式设置初始化顺序。App Startup`允许您定义共享单个内容提供程序的组件初始化程序,而不是为每个需要初始化的组件定义单独的内容提供程序。这可以显著缩短应用程序启动时间。App Startup解决什么问题在学习App Startup的用法之前,首先我们需要搞清楚的是,App Startup具体是用来解决什么问题的。App Startup是一个可以用于

2021-03-02 23:29:29 383

翻译 Android Jatpack DataStore使用详解

简介Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和流程以异步、一致的事务方式存储数据。如果您当前在使用 SharedPreferences 存储数据,请考虑迁移到 DataStore。注意:如果您需要支持大型或复杂数据集、部分更新或参照完整性,请考虑使用 Room,而不是 DataStore。DataStore非常适合简单的小型数据集,不支持部分更新或参照完整性。Preferences Dat

2021-03-01 23:47:20 1335 1

原创 Android DeepLink多个参数传递

DeepLink在adb shell命令模拟时,如果有多个参数,& 符号之前要加 \ 进行转义,否则后面的参数收不到。解决方法:$ adb shell am start -W -a android.intent.action.VIEW -d "scheme://host?package=com.tencent.mm\&isNeedComment=true"...

2021-02-22 18:59:53 1926

原创 Java或者Python搭建简单HttpServer

java搭建简单HttpServerjava构建简单的HTTP服务器Java 实现简单的Http服务器搭建简单的HTTP服务器用Java编写你自己的简单HTTP服务器Python搭建简单的HttpServer在Windows 7/10或Ubuntu上可以通过python2.x或python3.x来快速搭建一个简单的HTTP服务器。如果python为2.x,则可执行:$ python -m SimpleHTTPServer 或 $ python2 -m SimpleHTTPServe

2021-02-21 16:13:18 247

转载 Android DeepLink使用

DeepLink 介绍DeepLink,即为深度链接技术,主要应用场景是通过Web页面直接调用Android原生app,并且把需要的参数通过Uri的形式,直接传递给app,节省用户的注册成本。DeepLink 通常运用于App社交分享、App广告引流、App裂变活动、Web to App、分享效果统计、沉默用户唤醒等场景,对广告引流、活动推广、新闻类、电商类、游戏类、视频直播类App的引流推广和转化都有着奇效。常见使用场景如下:电商类:在分享商品链接中点击,进入 App 内对应店铺或购物页面资讯类

2021-02-19 19:30:02 7792

原创 macOS安装Homebrew

macOS安装Homebrew请参考https://brew.sh/index_zh-cn.html

2021-02-02 15:33:00 78

空空如也

空空如也

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

TA关注的人

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