自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

a day a better

每天进步一点点

  • 博客(213)
  • 资源 (6)
  • 收藏
  • 关注

原创 【Android】Dialog弹出软键盘时把布局顶起来的实现

软键盘和EditText保持一定间距的实现思路,可以设置EditText 的 paddingBottom。

2024-01-11 15:03:34 1158

原创 包大小检测优化策略

热启动时间:热启动表示用户在首页按了返回,首页Activity已经Destroy,不过Application仍在内存中存在,对应的进程并没有被杀掉,不包含Application创建过程。热启动时间指在Application仍然存在的情况下,从用户点击桌面图标,到首页内容全部展示出来的时间。冷启动时间:冷启动表示用户首次打开应用,这时进程还没创建,包含了Application创建的过程。冷启动时间指从第一次用户点击Launcher中的应用图标开始,到首页内容全部展示出来的时间。每一次的输出如下所示信息。

2023-07-28 11:26:03 191

原创 Android APP逆向分析工具和方法汇总

Android 逆向分析,受益于移动设备的广泛普及,移动应用近年来得到了蓬勃发展。基于移动设备集成的各类传感器,众多功能丰富的移动应用被开发出来,聚集了大量高价值用户隐私数据,包括用户身份信息、地理位置信息、账户资料信息等。用户在享受移动应用带来便利的同时,其隐私安全也受到了重大威胁。在这样的背景下,移动应用隐私合规检测应运而生。

2023-06-30 11:06:38 3800 1

原创 问题定位及解决方案

Fragment在onCreate时,埋点逻辑才注册生命周期监听,懒加载时,setUserVisibleHint true先于onCreate执行,导致onVisible没有调用到,因此未走TrackUtil.onPageEnter方法,在页面离开时走onPageLeave,没有匹配一对pageEnter和PageLeave,所以不会上报2001页面事件。参考 HomeFragmentV3,懒加载,页面初始化时,未触发onVisible,需要做一次补偿。1.视频沉浸页快速滑动后,必现不能向下划动。

2023-04-24 16:41:09 648 1

原创 Mac AndroidStudio开发环境搭建

Mac AndroidStudio开发环境搭建。

2023-04-24 11:44:07 2910

原创 Android自定义ViewPager禁止横向滑动

自定义ViewPager,复写 canScrollHorizontally 方法,禁止横向滑动。

2023-02-23 19:59:24 887

原创 Android 字体大小自适应 二阶贝塞尔曲线动画

连续调用setSpan时参数Object what不能使用同一个引用。SpannableStringBuilder使用注意。TextView字体大小自适应。否则只有最后一个设置有效。二阶贝塞尔曲线动画效果。

2023-02-16 11:26:56 242

原创 Android 富文本 SpannableString 支持网络图ImageSpan

实现思路: 在文本前加空格占位,使用默认图填充,下载网络图,下载完成时替换默认图。CenterVerticalImageSpan 实现图片在文字中居中效果。图片居中: CenterVerticalImageSpan.java。富文本 SpannableString 支持网络图。

2023-02-16 11:02:25 1133 1

原创 关于数据收集的简化思考:结构化View数据自动跟随UI变化而更新

数据根据UI变化更新,实现思路

2022-12-06 16:57:57 257

原创 SharedPreferences工具类 putStringSet 失效问题注意

SPUtil 工具类实现1.注意HashSet对象引用为同一个,可能不会触发更新。需要拷贝数据到新的Hashset2.在putStringSet 调用之前,注意先 clear(),不然已经存在该 key了,value值不会更新。

2022-11-05 11:36:19 327

原创 Android多语言资源热更新方案AssetsManager

动态更新多语言文案AssetsManager

2022-10-12 11:34:51 1627 1

原创 一些代码经验分享

一些Android代码经验分享

2022-10-10 19:27:12 361

原创 RecyclerView快速上下滑动,crash原因分析及解决

RecyclerView快速上下滑动,crash原因分析及解决异常日志:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position--------- beginning of crash05-31 16:03:37.218 E/AndroidRuntime(21081): FATAL EXCEPTION: main05-31 16:03:37.218 E/AndroidRuntime(21

2022-05-31 17:32:56 615

原创 《设计模式之美》学习理解总结

越抽象、越顶层、越脱离具体某一实现的设计,越能提高代码的灵活性,越能应对未来的需求变化。好的代码设计,不仅能应对当下的需求,而且在将来需求发生变化的时候,仍然能够在不破坏原有代码设计的情况下灵活应对。

2022-05-24 14:24:14 235

原创 2022 开源轮子学习笔记

2022 开源轮子学习笔记OKHttp总结:OkHttp的内部实现通过一个责任链模式完成,将网络请求的各个阶段封装到各个链条中,实现了各层的解耦。参考:https://juejin.cn/post/6844904087788453896https://blog.piasy.com/2016/07/11/Understand-OkHttp/index.html...

2022-01-08 18:09:54 1574 1

原创 读书笔记- Android全埋点解决方案

读书笔记- Android全埋点解决方案看完了 《Android 全埋点解决方案》,一句话总结:就是如何利用Android 系统提供的能力,在尽量不侵入原有业务逻辑的前提下,实现全场景埋点。即实现埋点和业务的解耦。1.前三章总结第一章:全埋点:指无须开发工程师写代码或只写少量的代码,就能预先自动收集用户的行为数据。全埋点的事件类型:包含: $AppStart, $AppEnd, $AppViewScreen, $ AppClickView绑定Listener方式:1.setOnCli

2021-12-25 21:00:42 1945

原创 Android模拟服务端下发消息的Socket通讯工具

Android模拟服务端下发消息的Socket通讯工具1. 背景简介背景简介:有些场景需要依赖服务端下发消息到客户端,比如PowerMsg,服务端下发消息Type,客户端解析Type做出相应动作。比如直播答题,需要依赖服务端下发消息,客户端拿到消息根据规则去展示题目等等。2. 痛点说明依赖服务端消息下发,客户端很被动,无法主动构造相应消息。所以急需一个可以模拟服务端消息下发的工具,socket工具由此而来。3. 工具原理电脑模拟Socket服务端,Android应用模拟Socket客

2021-10-20 11:53:44 1312

原创 一些方便网络联调的代码工具总结

一些方便网络联调的代码工具总结1.从assets目录中读取Json数据2.摇一摇启动调试页1.从assets目录中读取Json数据代码工具参考:import android.content.Context;import android.content.res.AssetManager;import android.util.Log;import com.alibaba.fastjson.JSONObject;import java.io.BufferedReader;import jav

2021-07-15 17:04:23 184

原创 java 从给定的字符串URL中提取参数值

java 从给定的字符串URL中提取参数值从给定的url中提取某个参数的值,如:String url = “https://editor.csdn.net/md/hs/market/category?native_fullscreen=1xxc&hasBack=1&pageIndex=1”;提取 pageIndex的值为1,native_fullscreen的值为 “1xxc”实现思路:1.可以通过字符串截取,url.indexOf(“pageIndex”),url.sub

2021-04-07 19:19:40 8366 5

原创 责任链模式 -- 让一个以上的对象有机会能够处理某个请求

责任链模式 – 让一个以上的对象有机会能够处理某个请求责任链的优点:降低耦合度。它将请求的发送者和接收者解耦;简化了对象。使得对象不需要知道链的结构;增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任;增加新的请求处理类很方便。责任链的缺点:请求没有明确的接收者,不能保证它一定会被处理,该请求可能一直到链的末端都得不到处理;对于比较长的职责链,请求的处理可能涉及到多个处理对象,系统性能将受到一定影响,而且在进行代码调试时不太方便,可能会造

2021-01-12 11:40:45 236 3

原创 AndroidStudio 抓包工具Profiler使用

AndroidStudio 抓包工具Profiler使用通过AndroidStudio工具查看网络抓包第一步: 打开Profiler面板,找到“+”,选择App进程,开启追踪。第二步: 执行相关网络请求操作,结束追踪。第三步:生成1条追踪记录,选择NETWORK网络,即可查看网络请求。第四步: 鼠标可以在出现波峰处点击(图中1处),查看该时刻的网络请求。下发面板(图中2处)中的Name,Size 列出了请求的链接名称,网络请求包的大小,点击后右侧面板(图中3处)出现具体的请求返回json数据

2020-10-21 21:42:25 5040 6

原创 链式调用,当一个逻辑执行完成后,继续向下执行另一个逻辑

链式调用,当一个逻辑执行完成后,继续向下执行另一个逻辑使用场景:如跳转第三方App,优先使用A方式,当A方式失败后,则使用B方式;若B方式也失败则使用C方式,等等…实现步骤:构造公共抽象父类 Jump.javaJump是父类,提供成功、失败回调设置;启动跳转start方法,都为final,子类不可覆盖。jump为抽象方法,子类必须实现。父类提供方法框架,跳转失败后,尝试使用下一种方式跳转(next),具体逻辑子类各自实现。public abstract class Jump {

2020-10-15 16:00:54 407

原创 使用泛型继承类,实现方法重载,避免使用instanceof判断类型

使用泛型继承类,实现方法重载,避免使用instanceof判断类型代码示例代码示例基类:BaseNewsHolder.javapublic class BaseNewsHolder<T extends NewsBaseInfo> extends RecyclerView.ViewHolder implements View.OnClickListener {public BaseNewsHolder(@NonNull View itemView) { super(it

2020-08-20 14:36:54 294

原创 ViewPager嵌套ListView滑动冲突解决,ViewPager内容按照元素最大高度显示

ViewPager嵌套ListView滑动冲突解决,ViewPager内容按照元素最大高度显示效果图:矩形区域是可以横向滑动的,里面嵌套listview,若不处理,容易出现滑动冲突。参考代码:自定义ViewPagerpackage com.**.common.view;import android.content.Context;import android.support....

2019-12-05 17:36:43 794 1

原创 Android 图片吸色,增加过渡效果

Android 图片吸色,增加过渡效果效果图如下:参考实现:LongImageDownloadUtil imgLoadUtil = new LongImageDownloadUtil(); imgLoadUtil.loadImageForListener(mContext.getApplicationContext(), data.imgUrl, new LongI...

2019-11-27 13:39:11 789

原创 Curl命令模拟Post/Get请求

Curl命令模拟Post/Get请求Curl命令模拟Post请求(:*)Curl命令模拟Get请求Curl命令模拟Post请求(????)如,post接口请求的链接为:https://api.xxxx.com/xxx/search/list?c={“cc”:1602,“ct”:20,“dt”:1,“ov”:20,“p”:xxx,“v”:“000”}post入参为:{“catId”: 0,“...

2019-11-19 11:03:10 1011

原创 Android GradientDrawable动态设置背景色、圆角

有时候需要改变shape中部分属性,比如下面代码,只想改变颜色,圆角不变<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <corners android:bottomLeftRadius="...

2019-06-12 19:33:57 6006 1

原创 Android RN 从native页面返回到RN页面时,Alert框无法弹出解决方法参考

Android RN 从native页面返回到RN页面时,Alert框无法弹出问题描述:从native页面返回到RN页面,RN页面通过在componentWillMount 中注册native监听bridge.addNativeListener(‘EVENT_CHANGE_TOURIST’,(data) => {…}, 在监听中执行逻辑,弹出Alert框。参考场景如:选择出游人,跳转...

2019-04-25 15:19:36 962

原创 Android RN和native 嵌套pop返回2层页面的实现

Android RN和native 嵌套pop返回2层页面的实现如题,现在有如下场景:页面A是RN的,跳转到页面B是native的,再从页面B跳转到页面C,C页面是RN的。即: RN -> Native -> RN在C页面执行了一些逻辑(如在酒店详情页选择了一个房型价格计划),现在需要直接返回到页面A,即需要把页面C、页面B都 finish掉,即pop两层。实现分析...

2019-04-16 18:20:49 650

原创 React Native 返回上一个页面后执行刷新逻辑

React Native 返回上一个页面后执行刷新逻辑如题,在RN中,实现从页面A ->进入页面B,在页面B返回到页面A的时候,需要执行刷新逻辑。代码实现思路:在页面A中注册监听,当页面B销毁的时候(注意是销毁的时候,包括点击返回按钮、或者物理返回键),B页面通知A页面,A收到通知后,执行刷新逻辑即可。代码实现参考:页面A// 注册监听componentWillMo...

2019-04-11 16:34:46 5083 4

原创 Flutter 在AndroidStudio中的配置简记

Flutter 在AndroidStudio中的配置简记搭建flutter环境可以参考官方文档:搭建Flutter开发环境在AndroidStudio中,gradle的配置可能会影响到打包运行,列一下相关文件。1. android根目录下的build.gradle文件注意:a. 去掉google()b. classpath ‘com.android.tools.build:gradl...

2019-03-08 16:42:32 946

原创 Android 通过shape画线,1条线2种颜色,左边线条和背景色一致,右边线条为divider颜色

Android 通过shape画线,1条线2种颜色,左边线条和背景色一致,右边线条为divider颜色有时候ListView的Item分割线,会隔断,不是一条完整的横线,参考如下。效果图:如图中箭头所指的的地方,分割线距离左侧是有距离的。参考代码:&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;layer-list xmlns...

2019-02-16 16:23:11 3673 1

原创 Android TextView 富文本SpannableString 文字+图片居中显示,支持图片换行居中显示

Android TextView 富文本SpannableString 文字+图片居中显示代码示意:注意1. drawable 为图片资源,只能是一整张图,如酒店星级,5星级一张5个星星的图片,不能是1个星星循环5次拼接一起,因为涉及到图片换行显示。2. textView先显示文本,后加空格" ",然后再拼接图片上去。3. 需要根据字段映射不同的图片,如1-5星级,对应的不同的图片dra...

2019-02-15 20:16:17 4783 2

原创 Android TextView 设置了maxLines但是不生效的可能原因分析

Android TextView 设置了maxLines但是不生效的可能原因分析检查是否设置了 android:ellipsize=“end” 属性检查代码中是否有如下类型的代码:错误代码:不应该在setText,之后再调用appendtextView.setText(str1);textView.append(",");textView.append(str2);参考代...

2019-02-15 19:57:10 5276

原创 Android 设置显示部分边框,如左侧边框不显示

Android 设置显示部分边框,如左侧边框不显示效果图如上:右侧的价格显示区域,左侧是没有边框的,用来和左边的黑卡价图标进行对接,拼接好的效果如下。参考代码(可依此扩展):&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;layer-list xmlns:android="http://schemas.android.com/apk/res...

2019-02-15 19:30:38 2384

原创 Android 带边框的自定义TextView

Android 带边框的自定义TextView图片效果如下:参考代码:package com.tuniu.hotel.customview;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.RectF...

2019-02-15 19:02:55 392

原创 【小程序】分页加载数据,下拉加载更多,上拉刷新

【 小程序】分页加载数据,下拉加载更多,上拉刷新分页加载的优点就不多说了,下面主要记录一下几个问题点。scroll-view组件不能用在页面根布局中,不然触发不了系统的onPullDownRefresh()、onReachBottom()回调。在Page页面配置中增加如下两项配置: enablePullDownRefresh: true, onReachBotto...

2018-10-17 16:26:39 3770 1

原创 【小程序】解决 Android机型上button按钮出现边框

【小程序】解决 Android机型上button按钮出现边框问题描述:在Android机型上出现button按钮组件,在四个角上出现边框。在模拟器、iPhone手机上没有边框。问题原因:button控件上有一个伪元素(::after),虽然代码中设置了border : none,但是被button::after 给覆盖了,只要把button::after 的border 属性去掉就...

2018-10-15 18:16:38 1203

原创 【小程序】开发 JS知识总结

JS知识总结js判断字符是否为空的方法://判断字符是否为空的方法function isEmpty(obj){ if(typeof obj == &amp;quot;undefined&amp;quot; || obj == null || obj == &amp;quot;&amp;quot;){ return true; }else{ return false; }}// 简

2018-10-15 14:17:01 302 4

原创 【小程序】踩坑记录(待续。。。)

【小程序】踩坑记录2018-10-11WePY 1.x 版本中,组件使用的是静态编译组件,即组件是在编译阶段编译进页面的,每个组件都是唯一的一个实例,目前只提供简单的 repeat 支持。不支持在 repeat 的组件中去使用 props, computed, watch 等等特性。参考: https://tencent.github.io/wepy/document.html#/?id...

2018-10-11 19:57:46 252

AndroidOCR和Canvas画板demo

AndroidOCR和Canvas画板demo

2023-12-19

如何成为Android高手

如何成为Android高手

2015-09-22

The Pragmatic Programmer: From Journeyman to Master英文原版

The Pragmatic Programmer: From Journeyman to Master英文原版

2015-07-30

使用Jsoup库解析HTML、XML或URL链接中的DOM节点

使用Jsoup库解析HTML、XML或URL链接中的DOM节点 Jsoup进行Html的Dom解析

2015-07-30

Android图案解锁源代码

Android图案解锁的源代码,有注释,可方便扩展。

2015-07-22

Android Game2048游戏代码

Android游戏2048 代码 大家互相学习,修改完善。

2015-07-06

ViewFlow源码

ViewFlow源码,可以实现广告条自动轮播,动态设置图片个数,ImageLoader异步加载。

2015-04-07

空空如也

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

TA关注的人

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