- 博客(143)
- 资源 (20)
- 收藏
- 关注
原创 最轻量级最完整的屏幕适配完全适配各个手机方案
当你看到这篇博客的时候,说明你已经迈出了惊人的一步,已经慢慢进入高级资深开发工程师行列了,这是开发之路必备技能。当你接到一个任务时,每天按照需求原型、设计师UI图立刻积极的开发完成后,满满的兴高采烈去打包提测,板凳还没做安稳,测试人员就提了一个又一个的BUG,作为一个开发人员,有BUG很常见,没BUG那是不存在的,相信大家都深有体会;有BUG那就看看提的是什么BUG吧,一打开BUG列表就傻了眼,适配问题这个那个一堆,是不是感觉心力交瘁?
2023-11-24 19:24:18
597
原创 非常好用的输入框数字控制工具类EditTextUtil
每个项目中都会牵扯到和金额相关的业务,用户手动输入金额可以有很多操作,自定义键盘控制按键操作,或者调用系统键盘控制输入;这里写了一个通用的控制类,一行代码搞定,让开发者更能把精力关注自己的业务上;举个栗子:如果输入的地方太多,都需要每个页面进行运算吗?
2023-03-16 09:00:25
263
原创 View列表嵌套滑动冲突
技术分析:首先想到的是既然可以上下滑动,Recyclerview主动举起了手,左右滑动、上下滑动那就是监听手势相关,dispatchTouchEvent()–>onInterceptTouchEvent()–>onTouchEvent(),滑动消息列表通知父View消息View自己要消费事件,通过ACTION_DOWN、ACTION_MOVE,监听点击区域和滑动区域来控制事件有谁消费,事件传递不再累赘可自行查阅,主要是在onInterceptTouchEvent里面通过点击区域来控制谁消费;
2023-01-14 16:09:15
288
原创 抓取HTTPS失败和乱码
然后选中启用SSL代理(Enable SSL Proxying),charles的Location配置都是支持通配符的,因此在Host里设置一个"*"就可以,port不写。这时会有一个弹框,意思是要给手机设置代理,内容是自己的ip地址,然后用手机浏览器打开chls.pro/ssl。如果需要配置某个指定域名,也是在Host里填写,配置指定域名时,一般Port是443,这样就可以抓取到。在手机文件管理里找到证书,将后缀pem改成crt,点击安装即可。这时开始安装charles证书,一路点击下一步即可。
2023-01-11 10:58:58
902
原创 仿抖音视频双指缩放和单指滑动效果
最近刷抖音看视频时,对一个视频某个位置比较感兴趣,采用双指放大查看细节,然后还可以随意滑动到任何位置,比较感兴趣,决定自己来实现此效果;分析效果:ViewPager左右滑动,视频列表上下滑动+下拉刷新,双指进行缩放操作计算移动坐标来平移view,双指到单指也可以进行平移问题评估:viewpager左右滑动和列表左右滑动冲突问题,单指滑动滑出边界和下拉刷新控件手势冲突;
2023-01-10 16:28:07
1085
1
原创 深入理解蓝牙BLE
两者的区别很明显,虽然都叫做蓝牙,但已经算是两个东西了;流程的话都是一样的,使用协议不同发现设备->配对/绑定设备->建立连接->数据通信经典蓝牙和低功耗蓝牙除了配对/绑定这个环节是一样的之外,其它三个环节都是不同的。经典蓝牙:经典蓝牙设备发现其它经典蓝牙设备的方式是调用BluetoothAdapter的startDiscovery()方法。api上说的比较模糊,大致是说只能够发现经典蓝牙设备。然而实验发现 BluetoothAdapter.startDiscovery是可以同时发现经典蓝牙和ble的低
2022-07-06 10:01:25
2382
原创 Android 12 应用兼容性适配
最近刚买了个Android12 手机,这日饶有兴致的把项目装在手机上装个小B,谁曾想在下载视频时无法下载导致视频播放不了,然后再拿测试机和Pad都试了试没啥问题啊,这是为何,清单文件里面也配置了不启动分区了,首先猜想是文件夹创建失败了,赶紧把log输出出来,眼巴巴的看到了文件创建失败的log,尴尬的笑了……Android 10 改变了文件的存储方式不允许应用随意创建文件夹了,要用安卓提供的文件夹,当APP卸载时创建的文件夹一并会删除,避免在根目录下创建的文件不会随着APP卸载而删除,这就导致了垃圾数据,
2022-03-31 15:19:55
5437
3
原创 工作遵循五步工作部署法
现在社会发展越来越快,工作时间压缩的越来越短,员工做出来的和领导要求的不在一个层面的事故频频发生,导致沟通成本越来越大,如何高效且完整的落地需求呢?现实情况是:老板说了一遍,你如果应答慢了,没有立即执行,就会被老板认为是消极怠工,轻则影响仕途,重则被炒鱿鱼。如果你还要愣头青地问上第二遍、第三遍,直接就会被老板认为是没有听取他人话语的能力,以后开会决策都会与你无缘,更别说升职加薪了。所以很多人即便是一遍没有听懂老板的意图也不会去问,总之先答应再说,之后大多数都是员工之间...
2022-03-11 09:56:44
893
原创 Android设置项目为系统APP
狂揽西风,一水如镜,黑丝三千尺,一望如白驹;何为系统APP何为三方APP?位于system分区内的是系统软件,位于data分区得的是第三方后安装的软件系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。所谓第三方软件指的是该非线性编辑系统生产商以外的软件公司提
2021-11-25 09:48:27
2677
原创 Arouter组件化使用及隐藏坑
之前专门针对Arouter组件化做了一个PPT,详细的介绍了一下如何使用,这里找半天没找到,此用简单的几句聊聊Arouter;使用组件化之前大家一定有这种情况,刚开始项目1.0版本时,项目业务简单,编译时间快,随着版本迭代越来越大,项目业务越来越精细化、越来越复杂,再加上公司人员变动,无论分析代码层次,修改一个小需求往往都需要编译整个代码,耗时耗力,心力交瘁;组件化其实很简单的理解就是拆分,动态独立编译,打包时修改属性打到一个app里面,这里就不再累赘了,自行查阅;说这么多,有人说代码如
2021-10-08 11:45:52
381
原创 公司代码架构太老
跳槽到一家新公司,如果代码架构、设计、技术栈都比较老怎么办?最近跳槽一家新公司,来公司几天发现架构是6年前的,最新的技术栈都没有使用,使用MVC,一个类里面几千行代码,找个东西都麻烦得很,一行代码注释都没有,RxJava、RxAndroid、Retrofit等都没有使用,使用的是JsonObjest,和自己平时的开发习惯太不一样了,感觉很不友好,在旧的基础上开发吧肯定不行,如果现在重新架构又没有太多时间,这时候需要怎么做呢?初来新公司,首先应该抓紧时间熟悉现有的代码,从设计到架构,应该全面熟悉一遍之
2021-09-05 10:47:32
1049
原创 微信一键登录遇到的坑
前两天公司业务需要集成微信一键登录功能和手机号一键登录功能,刚好一段时间没熟悉微信开发文档了,趁着这次时间再次实现一下。首先呢,去微信开放平台注册账号,创建对应项目的移动应用,获取业务接口微信开放平台一般就两个微信登录、微信支付用的最多了;集成前一定要详细的看一下如何集成、需要着重注意哪些API接入指南微信登陆文档我这里就不再累赘了,需要注意的不外乎,AppID,AppSecret,SDK版本是否维护状态,这里我着重强调一下回调的问题,文档上面说再清单文件里面配置WXEntr
2021-07-05 10:33:46
656
6
原创 第一次运行flutter项目遇到的的坑
最近有很多人问Flutter的问题,这里针对碰到得坑,我这里统计下来,一个一个去解决学习什么最好是从官方文档出发,一般不要咀嚼别人的文章,一千个哈姆雷特道理,懂者都懂;Flutter中文网https://flutterchina.club/flutter-for-android/1:使用镜像在用户变量里面,copy进去即可2:安装Flutter,Git等这里不做详细描述,具体参照文档来切记安装好之后配置环境变量打开win+R, 输入cmd,运行flutter docto.
2021-04-16 14:29:50
1403
原创 2020年的闲谈杂说
2020年是一个困难的一年2020年是一个考验人性的一年2020年是一个多灾的一年2020年是一个需要存款来消费的一年纵观2020年,年初疫情封路封村封城,几乎所有人都只能待在家里,出门打工这些年想的是可以财富自由、有时间多陪陪父母亲人,可当真正待在家里两个月,特别是大批公司裁员、降薪、倒闭,心里状态发生了惊人的变化;人从来到世上开始,无时无刻不是在创造价值,无时无刻不是在受苦受难,一辈子在费时费力的耕作,到头来想想如何实现财富自由?这些年,经历了全国各地拆迁、房地产大涨、P2P的兴
2020-12-31 14:37:53
253
4
原创 自己的库分享到github并添加到依赖
Android开发总会遇到造轮子的时候,造的多了就觉得如何形成一种依赖关系,通过gradle依赖进来不是更好维护了嘛,发现jitPack早已经有了,顿时想想之前的操作浪费时间,开发需要把时间投入到更重要的事情中去;下面就来教你通过github与JitPach一步步实现库的就以项目 ZxingDemo作为例子来讲解。1.在本地Android Studio建立工程和库 先新建一个项目作为示例或者demo项目。在项目新建一个Module,Module新建为 Andro...
2020-11-06 08:54:51
340
原创 SourceTree克隆码云仓库提示这是一个无效的URL
解决法一通过git生成公私密钥法1)生成公私钥桌面右击–>git bash here–>在客户端输入如下命令ssh-keygen -t rsa -C “邮箱@***.com” 回车回车回车回车成功生成密钥对 在C盘用户目录下面找到.ssh文件夹2)查看公钥cat ~/.ssh/id_rsa.pub复制公钥到码云的个人设置–>SSH公钥处工具–>选项–>一般;SSH客户端设为OpenSSH, SSH密钥处导入生成的密钥确认SourceTree的G
2020-11-05 16:07:01
1608
原创 Android app切换语言、国际化、本地化
首先要了解什么是国际化?明知故问?其实就是同一界面加载不通语言的显示,让不同语言的用户使用,要实现这个功能,首先必须创建几套不同的strings文件那么有人会问了,究竟怎么创建呢?别急,这就来说……跟着图一直走……需要哪一个国家就创建哪一个这时候你会发现在你的android目...
2020-09-10 10:03:27
4584
2
原创 关于如何有效的提出 bug
如何有效报告 bug概述写过开源软件的人,大都收到过至少一个很糟糕的 bug 报告,例如直接说软件不好用 报告的内容毫无意义 没有提供足够的信息 给出了错误的信息 问题是由于用户的过失产生的 问题是由于其他程序的错误而产生的 问题是由于网络错误而产生的这也是「技术支持」被视为一个可怕工作的原因。然而,并不是所有的 bug 报告都是让人不愉快的。我一直在没赚钱的时候维护开源软件,有时候会收到一些非常清晰的、有帮助的、内容丰富的 bug 报告。在这篇文章中,我将尽量说清楚如何去写一
2020-09-09 16:59:29
1012
原创 Glide加载图片不刷新
三方图片框架这么几年也就三四个,当然了也可以自己封装,如何选择框架主要看自己的项目里面图片多少来达到一个平衡点,现有用的最多的还是Glide框架,不需要去管如何缓存,加载机制;先老生常谈一下,上源码//绑定Activity得生命周期//绑定Fragment得生命周期with如果传入Application.this作为参数时,Glide的加载不受当前Activity生命周期影响,但这会导致即使Activity结...
2020-08-26 17:40:45
1538
原创 android 一个手机安装多个app,解决 “应用组件的命名与已安装应用有冲突”
互联网市场形势下公司如何生存下来,如何效益最大化,如何公司做大,项目做强?答案有很多但离不开以下几点:多做项目、做好项目、高效率的做项目、早上线……以上几点想必大家伙都知道,都清楚、可是如何做呢?从哪里入手呢?如何把想法落地呢?如何让测试人员如何更方便的测试?不再进行无用的操作?重复卸载、安装、卸载、安装……测试人员往往为了切换...
2020-06-23 15:09:52
3661
原创 Android 5.1之前版本加载WebView崩溃和乱码,图片宽度不能填充屏幕问题
开发过程中或多或少有一些极端情况,比如这次有用户说他是安卓5.1系统,使用我们APP时发现打开WebView要么是乱码,要么崩溃,这个问题其实不是什么问题,因为在开发之初根据客户人群制定了支持安卓6.0以上版本,但是作为一名开发者来说,有问题就要撸,撸到没问题,撸到代码质量高,撸到APK包小,撸到用户体验好那就来解决一下吧,创建一个原生虚拟机测试一下,emmm……确实有...
2020-04-27 11:13:12
10009
原创 android studio 3.6 中文乱码的问题
升级Android studio 3.6.2之后,代码中文怎么都是乱码了?小朋友,你是否有很多问号?直接打开setting->File Encodings设置UTF_8,搞定。重启IDE,编译运行APP,看到控制台中文怎么还是乱码,明明设置了File Encodings 是UTF_8为什么就是不生效呢?网上方案大概有两种1:默认修改字体2:在project的build.g...
2020-04-13 14:30:22
807
2
原创 如何提升自己的技术层次,代码能力
一名学生从高中报考计算机相关专业,在茫茫专业中又从事安卓,本就不是一件容易的事情,能坚持下来的人更是少之又少(用心的)……大学,很多人认为经过了高中的忙碌阶段,到大学终于可以没人管自己,放飞自我,展翅高飞了;其实不然,大学生涯准确来说,已经和国外教育模式一致的,让个人养成一个独立的思维方式,对自己负责任的态度,你若严格要求自己,那么社会也不会亏待你,各种好就业机会,各种政府补贴,各种政策都...
2019-11-19 10:21:26
306
原创 Git代码合并使用Rebase还是Merge,区别?
使用git协同开发是否对提交的大量无用合并代码记录感到烦烦烦,没啥用又不想看到,就像下图一样,如何让提交、合并记录更简洁明呢?请往下看:官方说不能直接使用merge,最好先使用rebase;因为如果直接使用merge会将自己新增的功能与最新的版本合并成一个新的版本。而使用rebase是先把最新的版本拉下来,并把自己新增功能的改动编辑在最新的版本里,这样再次提交时,我们新增的改动就...
2019-11-13 14:20:42
1281
原创 Android反编译指南
反编译?拿到APK破解出来做一些其他的操作?反编译是一把双刃剑,有好的一面也有坏的一面,看使用者如何使用,再说了,大型商用apk是那么简单的破解的了吗?关键逻辑都是在后台做处理,移动端也做了混淆、加固操作;反编译一般有两种手段,一种是在线反编译,这种是很慢慢的,不多做介绍,本篇主要介绍使用编译工具进行反编译利用编译工具反编译需要的工具:APK TOOL :谷歌提供的 A...
2019-11-13 14:20:01
214
原创 自定义View之画图并截屏保存篇
自定义View相信大家应该了解的很多了,但是一般只是涉及使用,很少有时间来自己写一个自定义View,最近在想如何在屏幕上签名然后截屏保存呢?那就来看下吧……先来一首歌陶冶下情操:《你给我听好》你看看大伙儿合照就你一个人没有笑是我们装傻 还是你真的有很多普通人没有的困扰我才懒得给你解药反正你爱来这一套为爱情折腰 难道不是你一直以来戒不掉的癖好你在想谁想到睡...
2019-11-13 14:19:10
518
原创 Git如何高级进阶
Git对于大家应该是很熟悉的,分布式管理,比SVN更容易管理自己的项目,可以通过命令操作,或者借助于工具来使用,如果让你阐述什么是Git?或者Git讲解,就会难以启齿,你真的懂Git吗?Git使用命令 git clone git pull git log git add git commint git push …… 分支管理 新功能分支...
2019-10-09 09:50:26
411
原创 屏幕适配的几种方式
Andorid是开源的,开源的好处是“百家争鸣,百花齐放”,更快的打入并占有市场,弊端呢?衍生出许许多多手机厂商,各厂商生产的手机百十种机型不算多吧,往往国人有一种习惯,就是喜欢和别人的不一样,遵循:“别人无,我有;别人有,我好;别人好,我优”的心态。往往不按照规范走,随意修改API,这都是常态;想做自己独特的东西,API任意修改,做我自己的定制,产品独特……往往只管赚钱,钱是首要的,记不清是...
2019-09-09 09:27:56
3888
原创 仿微信实现拍摄视频,实现点击无声,自动录制
最近两年小视频越来越火热,音视频开发一直是迫在眉睫的事情,现在各个公司都想来站在风口上分一杯羹,跟上时代的潮流,说归说,可如何才能实现呢?提出需求-->需求分析-->发现问题-->实现思路-->多次尝试实现->解决问题!进行音视频开发需要注意以下几点:1、Android 版本,需要知晓你进行的音视频开发是需要满足那些群体?使用的手机android版本是多少...
2019-08-26 10:22:42
630
原创 Android studio差异化打包,一套代码如何Gradle一键打包多个不同的APP?
随着开发的效率提升,越来越多的需求诞生了,比如我今天说的这个如何一套代码加载不同的app_name,布局文件,主题,资源文件?一定要做一个会“偷懒”的程序员,遵守“懒”的一字方针;究竟怎么做呢?因为之前做过多渠道打包,猜想是不是和多渠道打包差不多呢?做任何事情之前得先分析,需要怎么做?从哪几个方向会出发?时间是多久……分析之后就开始实施了:具体如下:第一步:在app的...
2019-08-19 11:43:47
5485
5
原创 Android Radiobutton超级好用的自定义背景、文字颜色、点击效果
Android开发中一些认证、筛选的功能需要用到单选按钮,首先想到的是RadioGroup嵌套RadioButton,但是自带的样式真是不堪入目啊,功能实现了,如何能最大化的提升用户体验呢?这是一个问题……废话不多说,毕竟开发人员也不太善于表达,还是直接看图说话吧:首先思路要明确,分析要独到,radioButton默认背景是白底黑字,选...
2019-08-02 09:59:54
14195
13
原创 Dialog中输入法弹出被遮挡的相关问题
如果界面是activity或者fragment,那么直接可以再清单文件中或者包含fragment的activity中设置android:windowSoftInputMode="adjustPan"具体方案就不再详细说了,网上一大堆;在dialog中如何做呢?dialog中需要设置styles,也就是在里面添加即可;在...
2019-02-14 17:45:29
4918
原创 Github上传开源项目
如何把本地共享的代码上传到Github?第一步:打开Github网站,注册账号登陆进入仓库管理创建一个仓库,点击Create repository;上图已经写清楚了Github上传项目的方法,有两种方法:一种通过https,一种通过ssh。我这里用的https。第二步:因为GitHub是基于git实现的代码托管,我们要确认电脑上安装了git;第三...
2018-06-20 10:17:01
1137
原创 EditText的inputType限制
开发过程中,EditText是和用户交互的一个重要过程,总是不可少的,有些时候又不想让用户任意输入内容,减少不必要的麻烦(bug),这是我们往往有两种方案,1:自定义键盘;2:制定输入限制规则;说白了,让你输入啥你就得输入啥;一种方案是在布局文件设置:android:inputType="textPassword"andro...
2018-06-07 10:47:51
1133
1
原创 Android studio关闭gradle联网下载
最近很多小伙伴问我,为什么我的Android sudio这么卡顿、每一次打开都似乎在下载什么东西(检查),如何关闭呢?官网地址和gradle各版本下载地址:官网:http://gradle.org/release-candidate/各版本下载地址:http://services.gradle.org/distributionsOffline work也可以关闭...
2018-05-16 14:05:09
7272
3
原创 RecyclerView网络请求的成功、失败、无状态
通过Http请求数据,然后使用RecyclerView展示数据时,如何处理各种不同code的展示呢?以前listview可以通过,listview.setEmptyView(...)设置,然后是不是RecyclerView也可以呢?你会发现根本就没这个方法。RecyclerView源码中找到,里面通过AdapterDataObserver监听数...
2018-04-13 14:05:33
1298
原创 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "distributorId"
Android studio最近出现这个错误,特此分享出来,希望大家少跳坑这个错误的原因是,因为类中的属性和对应的json字符串中有其他字段不匹配,报错信息如下json无法转为Bean对象,解决方案如下:1:自己手动添加缺少的字段,(这种比较累,不建议使用)or2:在需要转的bean对象头添加@JsonIgnorePrope...
2018-03-24 14:17:02
1002
原创 Unable to add window -- token null is not valid; is your activity running
1,错误分析:从错误信息我们也可以明白其原因,此问题根本原因就是由于将要弹出的dialog所要依附的View已经不存在导致的。2,什么地方可能照成此问题:当界面销毁后再弹出来;或者界面跳转时我们的view发生改变,dialog依附的context发生变化或者界面未运行了。此外,很多时候我们需要通过一个非组件类来调...
2018-03-21 10:48:47
25704
7
原创 Android 解决华为虚拟键冲突遮挡底部按钮
监听某个视图的变化,当可以看见的高度发生变化时,就对这个视图重新布局,保证视图不会被遮挡,也不会浪费屏幕空间。这一点尤其可用在像华为手机等可以隐藏和显示虚拟键盘上导致屏幕变化的手机上。这里提供一个工具类:public class VirturlUtil { // For more information, see https://code.google.com/p/an...
2018-03-14 17:18:12
3668
5
原创 非常好用的国产手机5.0、6.0权限适配框架
你安装app提示一系列申请权限弹窗是什么感受?并且不同意就不能使用app,是不是太不友好了?如果能在使用时去请求权限是不是很实用?还在为 ActivityCompat.shouldShowRequestPermissionRationale(Activity, String) 无法弹出权限申请对话框困惑么?这里主要介绍permission4m的使用、注意事项:step 1:引入依赖...
2018-02-27 11:50:06
964
2
PullZoomView适配瀑布流
2017-10-10
Android studio使用Lottie实现动画
2017-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人