自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android性能优化

说到卡顿我们可能正常能想到是FPS刷新率,这是一个平均值,FPS高并不代表页面流畅,比如一个页面某一贞耗时了160毫秒,但是其他都是16毫秒,那么这个页面通过FPS的数据来看体现不出来卡顿,但是实际是用户明显的感觉到了卡顿的感觉。那么我们可以通过卡顿的帧数跟总帧数的占比来判定页面卡顿情况。

2023-07-10 15:35:04 273

转载 kotlin 编译时间优化

三、以上就是优化gradle编译时间的配置.其他不太重要的优化,好像对时间影响不算特别大。大家也可以根据自己的项目做针对优化。1.在gradle.properties添加如下配置。查看自己项目中gradle编译中具体所用的时间。1.创建buildTrace.gradle文件。二、在appgradle添加如下配置。2.在app项目中引用。...

2022-07-26 11:07:03 781

原创 Android 使用Webview加载PDF文件

一、核心代码 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pdf_renderer); WebSettings webSettings = weContainer.getSettings(); webSettings.setJavaScriptE

2021-12-20 15:10:03 4573 6

原创 Android xposed权限检测

前言由于开发的公司的APP上线华为市场被拒绝,APP以隐私政策弹窗前,非法收集用户信息,mac地址。排查过程通过抓包我们确认没用在弹出隐私条款前,发送类似的接口上报敏感信息,后和工信部电话沟通确认是只要你有调用getMacAddress此方法,就认定为非法的,即使你没有上报。所以就想怎么抓取那些sdk调用了getMacAddress确定方案使用VirtualXposed在手机上装了一下虚拟系统。:https://github.com/android-hacker/VirtualXposedHo

2021-09-14 16:56:16 1998 4

转载 Android路由技术调研

一、为什么要替换原生路由为自定义路由组件我们所使用的原生路由方案一般是通过显式intent和隐式intent两种方式实现的,而在显式intent的情况下,因为会存在直接的类依赖的问题,导致耦合非常严重;而在隐式intent情况下,则会出现规则集中式管理,导致协作变得非常困难。而且一般而言配置规则都是在Manifest中的,这就导致了扩展性较差。除此之外,使用原生的路由方案会出现跳转过程无法控制的问题,因为一旦使用了StartActivity()就无法插手其中任何环节了,只能交给系统管理,这就导致了在跳转失

2021-07-08 10:51:39 179

原创 Installation did not succeed. The application could not be installed.解决办法

Installation did not succeed. The application could not be installed.解决办法在项目中的gradle.properties全局配置中设置android.injected.testOnly=false

2021-05-21 16:05:45 6529

原创 Android路由框架

一、为什么要替换原生路由为自定义路由组件我们所使用的原生路由方案一般是通过显式intent和隐式intent两种方式实现的,而在显式intent的情况下,因为会存在直接的类依赖的问题,导致耦合非常严重;而在隐式intent情况下,则会出现规则集中式管理,导致协作变得非常困难。而且一般而言配置规则都是在Manifest中的,这就导致了扩展性较差。除此之外,使用原生的路由方案会出现跳转过程无法控制的问题,因为一旦使用了StartActivity()就无法插手其中任何环节了,只能交给系统管理,这就导致了在跳转失

2021-05-21 16:02:37 1343

原创 判断Android Textview是否换行

判断Android Textview是否换行1.先设置ellipsize=“end”2.通过addOnGlobalLayoutListene方法判断是否触发ellipsize="end"来判断是否换行 private void TvOverFlowed(final TextView textView,final View img) {ViewTreeObserver vto = textView.getViewTreeObserver(); vto.addOnGlobalLayoutList

2021-05-17 17:33:39 1483

原创 Android Studio 4.1 代码无错误提示(警告、报红等)

禁用:butterknife zelezny这个插件就可以了

2021-05-13 10:12:37 285

原创 搭建基于okhttp的网络请求框架

一、okhttp的方式1、引用okhttpapi 'com.facebook.stetho:stetho-okhttp3:1.5.0' api 'com.facebook.stetho:stetho:1.5.0'2、实现方式1)、先写请求接口回调package activemq.xmg.com.myapplication;/** * @name My Application * @class name:activemq.xmg.com.myapplication * * @

2021-04-15 14:39:57 339

原创 Android开发项目搭建全流程

Android开发项目搭建全流程一、网络请求框架的搭建网络请求框架的搭建现在主流的是采用okhttp或者okhttp与retrofit结合的方式来搭建。

2021-04-15 09:55:54 216

原创 Failed to save password Error code: -34018 on Mac OS

Failed to save password Error code: -34018 on Mac OS1.先登出navicat2.重新登录navicat3.重启navicat

2021-02-09 09:40:14 5651

原创 国内安装Home-brew

安装脚本:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"卸载脚本:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

2020-11-24 10:32:19 645

原创 没有卡顿的全局设置防暴力点击事件

全局设置防暴力点击事件一.创建Utils工具类,来验证两次点击的间隔/** * @name AresPlatformss * @class name:com.yitong.mobile.biz.launcher.util * * @class describe * * @anthor chuangcui 邮箱:919953719@qq.com * @time 11/23/20 4:19 PM */public class Utils { private static final

2020-11-23 17:25:41 1505 8

原创 Mac zshrc文件找不到问题

第一步创建zshrctouch .zshrc第二步打开zshrcopen -e .zshrc第三部在zshrc文件里输入source ~/.bash_profile然后保存:source ~/.bash_profile第四步刷新环境source .zshrc

2020-11-13 16:37:16 17648 2

原创 [!] Android toolchain - develop for Android devices (Android SDK version 30.0.2) ! Some Android

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2) ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses在控制台输入flutter doctor --android-licenses然后全程yes即可

2020-11-13 16:12:10 1911

原创 提示AndroidStudio4.1没有安装flutter插件,实际已经安装

Android Studio (version 4.1); Flutter plugin not installed and Dart plugin not installed errorschuangcui@chuangdeMacBook-Pro untitled3 % flutter doctorDoctor summary (to see all details, run flutter doctor -v):[✓] Flutter (Channel stable, 1.22.3, on Mac

2020-11-13 16:09:17 2667

原创 MAC OS系统下配置Flutter开发环境

MAC OS系统下配置Flutter开发环境一.安装Flutter1.下载地址: https://flutter.dev/docs/get-started/install/macos2.git下载贼慢,大概率会失败,推荐直接下载zip文件,自己解压即可3.添加flutter相关工具到path中//执行命令,打开bash_profile文件open ~/.bash_profile//在打开的配置文件中,添加下面文件,注意最下面那个路径要改成你下载好的flutter的路径export PATH=

2020-11-10 18:00:13 726

原创 Spring boot学习笔记

一、Spring Boot 入门1、Spring Boot简介简化spring应用开发的一个框架Spring框架的一个整合· 优点:快速创建独立运行的spring项目以及主流框架集成使用嵌入式的servlet容器,无需打包成WAR包starts自动依赖与版本控制大量自动配置,简化开发,也可修改默认配置无需配置XML,无代码生成,开箱即用准生产环境的运行时应用监控与云计算的天然集·缺点集成度较高,使用过程中不太容易了解底层项目后期部署跟运维的难度会加大人工测试难度加大,需要

2020-11-03 14:46:08 738 1

原创 Android/Java的bean序列化失败

Androidstudio/Java序列化失败在开发中我们经常需要把Bean序列化之后然后进行存储,但是有的时候我们明明序列化了bean,但是在存储的时候却提示没有序列化导致存储失败。原因:第一次序列化后我有在别的地方调用bean里面的方法,第二次因为服务器返回的数据以及数据结构变了,需要我重写bean文件重新解析重新序列化,而java在序列化的时候会把调用它的方法的地方也序列化,所以导致后面提示的序列化失败的问题解决方案:1.重新写一个bean进行序列化,然后再调用;2.第二次更改bean的时候

2020-11-02 16:43:27 325

原创 AndroidStudio4.1不提示编码错误,运行时才会报错

AndroidStudio4.1不提示编码错误,运行时才会报错第一种情况在C:\Users\Administrator\AppData\Roaming\Google\AndroidStudio4.1目录下删除plugins文件,然后重启androidstudio第二种情况可能是androidstudio的省电模式被开启了,只需要把省点模式关掉即可,如图的 Power save Mode给取消选中就行了...

2020-11-02 16:05:20 885

原创 Android圆角背景

Android圆角背景一、创建背景资源文件(名字根据需要随意)<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <!--设置圆角--><!-- 按顺序分别对应:左下角的角度、右下角的角度、左上角的角度、右上角的角度--> <corners android:bottomLe

2020-11-02 11:31:36 2010

原创 Android开发规范

Android开发规范主要分为:Java相关变量命名规范 、Android组件命名规范与编码规范、项目管理规范、Java相关变量命名规范四部分组成一、Java命名规范(主要参考google的java命名规范)1、对所有标识符都通用的规则标识符只能使用ASCII字母和数字,一些不太常见的场合会使用到下划线,因此每个有效的标识符名称都能匹配正则表达式“\w+”。使用英语单词或词组,不要出现汉语拼音。2、包名全部小写,连续的单词只是简单地连接起来,不使用下划线。例如:blusunrize.immer

2020-10-30 18:00:00 306

原创 Android验证码倒计时功能

验证码倒计时功能一、定义倒计时时间60秒private int mCountDownTime = 60;二、用线程创建倒计时功能 Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0) { if (--mCountDownTime == 0

2020-10-30 14:22:37 177

原创 SharedPreferences封装各种数据类型存取

public class SPTool { private static final String SP_NAME = BuildConfig.APPLICATION_ID; private static SharedPreferences.Editor editor; private static SharedPreferences sp; private SPTool() { } private static void init(Context context) { if (ed

2020-10-30 11:03:55 527

原创 Android自定义Toast

Android自定义Toast一、创建Toast布局文件layout_toast.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content"

2020-10-30 10:33:24 1222 5

原创 Android进度条

Android进度条一、创建ProgressBar背景bg_progressbar<?xml version="1.0" encoding="UTF-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 背景 --> <item android:id="@android:id/background" an

2020-10-30 10:05:26 298

原创 Android添加水印功能

import android.app.Activity; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; import android...

2020-09-23 17:51:43 1176

原创 AES加密工具类封装

import android.util.Base64;import java.security.MessageDigest;import java.security.spec.AlgorithmParameterSpec;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;public class AES64 { pri.

2020-07-16 16:08:53 473

原创 Fragment懒加载的实现

一、要实现Fragment的懒加载需要满足三个条件:1、布局是否初始化2、视图是否可见3、是否加载过数据综上所述,只要满足这三个条件就可以执行加载操作。二、如何实现1、定义一个 isPrepared变量,在初始化视图的时候赋值为true;2、定义一个isVisibleToUser变量,在页面可见状态赋值为true;3、定义一个isDataInitiated变量,在页面加载数据时赋值为true;三、直接上代码public abstract class BaseFrag

2020-07-15 15:19:07 2012

空空如也

空空如也

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

TA关注的人

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