精
文章平均质量分 69
专注新兴技术、高级进阶、开发思维、Git使用、心得体会;
一个小狼娃
像高山一样陡峭,像大海一样深邃,像草原一样广阔
展开
-
最轻量级最完整的屏幕适配完全适配各个手机方案
当你看到这篇博客的时候,说明你已经迈出了惊人的一步,已经慢慢进入高级资深开发工程师行列了,这是开发之路必备技能。当你接到一个任务时,每天按照需求原型、设计师UI图立刻积极的开发完成后,满满的兴高采烈去打包提测,板凳还没做安稳,测试人员就提了一个又一个的BUG,作为一个开发人员,有BUG很常见,没BUG那是不存在的,相信大家都深有体会;有BUG那就看看提的是什么BUG吧,一打开BUG列表就傻了眼,适配问题这个那个一堆,是不是感觉心力交瘁?原创 2023-11-24 19:24:18 · 508 阅读 · 0 评论 -
非常好用的输入框数字控制工具类EditTextUtil
每个项目中都会牵扯到和金额相关的业务,用户手动输入金额可以有很多操作,自定义键盘控制按键操作,或者调用系统键盘控制输入;这里写了一个通用的控制类,一行代码搞定,让开发者更能把精力关注自己的业务上;举个栗子:如果输入的地方太多,都需要每个页面进行运算吗?原创 2023-03-16 09:00:25 · 207 阅读 · 1 评论 -
View列表嵌套滑动冲突
技术分析:首先想到的是既然可以上下滑动,Recyclerview主动举起了手,左右滑动、上下滑动那就是监听手势相关,dispatchTouchEvent()–>onInterceptTouchEvent()–>onTouchEvent(),滑动消息列表通知父View消息View自己要消费事件,通过ACTION_DOWN、ACTION_MOVE,监听点击区域和滑动区域来控制事件有谁消费,事件传递不再累赘可自行查阅,主要是在onInterceptTouchEvent里面通过点击区域来控制谁消费;原创 2023-01-14 16:09:15 · 243 阅读 · 0 评论 -
抓取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 · 842 阅读 · 0 评论 -
仿抖音视频双指缩放和单指滑动效果
最近刷抖音看视频时,对一个视频某个位置比较感兴趣,采用双指放大查看细节,然后还可以随意滑动到任何位置,比较感兴趣,决定自己来实现此效果;分析效果:ViewPager左右滑动,视频列表上下滑动+下拉刷新,双指进行缩放操作计算移动坐标来平移view,双指到单指也可以进行平移问题评估:viewpager左右滑动和列表左右滑动冲突问题,单指滑动滑出边界和下拉刷新控件手势冲突;原创 2023-01-10 16:28:07 · 970 阅读 · 0 评论 -
深入理解蓝牙BLE
两者的区别很明显,虽然都叫做蓝牙,但已经算是两个东西了;流程的话都是一样的,使用协议不同发现设备->配对/绑定设备->建立连接->数据通信经典蓝牙和低功耗蓝牙除了配对/绑定这个环节是一样的之外,其它三个环节都是不同的。经典蓝牙:经典蓝牙设备发现其它经典蓝牙设备的方式是调用BluetoothAdapter的startDiscovery()方法。api上说的比较模糊,大致是说只能够发现经典蓝牙设备。然而实验发现 BluetoothAdapter.startDiscovery是可以同时发现经典蓝牙和ble的低原创 2022-07-06 10:01:25 · 2153 阅读 · 0 评论 -
Android 12 应用兼容性适配
最近刚买了个Android12 手机,这日饶有兴致的把项目装在手机上装个小B,谁曾想在下载视频时无法下载导致视频播放不了,然后再拿测试机和Pad都试了试没啥问题啊,这是为何,清单文件里面也配置了不启动分区了,首先猜想是文件夹创建失败了,赶紧把log输出出来,眼巴巴的看到了文件创建失败的log,尴尬的笑了……Android 10 改变了文件的存储方式不允许应用随意创建文件夹了,要用安卓提供的文件夹,当APP卸载时创建的文件夹一并会删除,避免在根目录下创建的文件不会随着APP卸载而删除,这就导致了垃圾数据,原创 2022-03-31 15:19:55 · 5303 阅读 · 3 评论 -
工作遵循五步工作部署法
现在社会发展越来越快,工作时间压缩的越来越短,员工做出来的和领导要求的不在一个层面的事故频频发生,导致沟通成本越来越大,如何高效且完整的落地需求呢?现实情况是:老板说了一遍,你如果应答慢了,没有立即执行,就会被老板认为是消极怠工,轻则影响仕途,重则被炒鱿鱼。如果你还要愣头青地问上第二遍、第三遍,直接就会被老板认为是没有听取他人话语的能力,以后开会决策都会与你无缘,更别说升职加薪了。所以很多人即便是一遍没有听懂老板的意图也不会去问,总之先答应再说,之后大多数都是员工之间...原创 2022-03-11 09:56:44 · 807 阅读 · 0 评论 -
Android设置项目为系统APP
狂揽西风,一水如镜,黑丝三千尺,一望如白驹;何为系统APP何为三方APP?位于system分区内的是系统软件,位于data分区得的是第三方后安装的软件系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。所谓第三方软件指的是该非线性编辑系统生产商以外的软件公司提原创 2021-11-25 09:48:27 · 2616 阅读 · 0 评论 -
android 一个手机安装多个app,解决 “应用组件的命名与已安装应用有冲突”
互联网市场形势下公司如何生存下来,如何效益最大化,如何公司做大,项目做强?答案有很多但离不开以下几点:多做项目、做好项目、高效率的做项目、早上线……以上几点想必大家伙都知道,都清楚、可是如何做呢?从哪里入手呢?如何把想法落地呢?如何让测试人员如何更方便的测试?不再进行无用的操作?重复卸载、安装、卸载、安装……测试人员往往为了切换...原创 2020-06-23 15:09:52 · 3536 阅读 · 0 评论 -
Arouter组件化使用及隐藏坑
之前专门针对Arouter组件化做了一个PPT,详细的介绍了一下如何使用,这里找半天没找到,此用简单的几句聊聊Arouter;使用组件化之前大家一定有这种情况,刚开始项目1.0版本时,项目业务简单,编译时间快,随着版本迭代越来越大,项目业务越来越精细化、越来越复杂,再加上公司人员变动,无论分析代码层次,修改一个小需求往往都需要编译整个代码,耗时耗力,心力交瘁;组件化其实很简单的理解就是拆分,动态独立编译,打包时修改属性打到一个app里面,这里就不再累赘了,自行查阅;说这么多,有人说代码如原创 2021-10-08 11:45:52 · 346 阅读 · 0 评论 -
微信一键登录遇到的坑
前两天公司业务需要集成微信一键登录功能和手机号一键登录功能,刚好一段时间没熟悉微信开发文档了,趁着这次时间再次实现一下。首先呢,去微信开放平台注册账号,创建对应项目的移动应用,获取业务接口微信开放平台一般就两个微信登录、微信支付用的最多了;集成前一定要详细的看一下如何集成、需要着重注意哪些API接入指南微信登陆文档我这里就不再累赘了,需要注意的不外乎,AppID,AppSecret,SDK版本是否维护状态,这里我着重强调一下回调的问题,文档上面说再清单文件里面配置WXEntr原创 2021-07-05 10:33:46 · 588 阅读 · 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 · 1346 阅读 · 0 评论 -
2020年的闲谈杂说
2020年是一个困难的一年2020年是一个考验人性的一年2020年是一个多灾的一年2020年是一个需要存款来消费的一年纵观2020年,年初疫情封路封村封城,几乎所有人都只能待在家里,出门打工这些年想的是可以财富自由、有时间多陪陪父母亲人,可当真正待在家里两个月,特别是大批公司裁员、降薪、倒闭,心里状态发生了惊人的变化;人从来到世上开始,无时无刻不是在创造价值,无时无刻不是在受苦受难,一辈子在费时费力的耕作,到头来想想如何实现财富自由?这些年,经历了全国各地拆迁、房地产大涨、P2P的兴原创 2020-12-31 14:37:53 · 230 阅读 · 4 评论 -
自己的库分享到github并添加到依赖
Android开发总会遇到造轮子的时候,造的多了就觉得如何形成一种依赖关系,通过gradle依赖进来不是更好维护了嘛,发现jitPack早已经有了,顿时想想之前的操作浪费时间,开发需要把时间投入到更重要的事情中去;下面就来教你通过github与JitPach一步步实现库的就以项目 ZxingDemo作为例子来讲解。1.在本地Android Studio建立工程和库 先新建一个项目作为示例或者demo项目。在项目新建一个Module,Module新建为 Andro...原创 2020-11-06 08:54:51 · 323 阅读 · 0 评论 -
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 · 1519 阅读 · 0 评论 -
关于如何有效的提出 bug
如何有效报告 bug概述写过开源软件的人,大都收到过至少一个很糟糕的 bug 报告,例如直接说软件不好用 报告的内容毫无意义 没有提供足够的信息 给出了错误的信息 问题是由于用户的过失产生的 问题是由于其他程序的错误而产生的 问题是由于网络错误而产生的这也是「技术支持」被视为一个可怕工作的原因。然而,并不是所有的 bug 报告都是让人不愉快的。我一直在没赚钱的时候维护开源软件,有时候会收到一些非常清晰的、有帮助的、内容丰富的 bug 报告。在这篇文章中,我将尽量说清楚如何去写一原创 2020-09-09 16:59:29 · 965 阅读 · 0 评论 -
Glide加载图片不刷新
三方图片框架这么几年也就三四个,当然了也可以自己封装,如何选择框架主要看自己的项目里面图片多少来达到一个平衡点,现有用的最多的还是Glide框架,不需要去管如何缓存,加载机制;先老生常谈一下,上源码//绑定Activity得生命周期//绑定Fragment得生命周期with如果传入Application.this作为参数时,Glide的加载不受当前Activity生命周期影响,但这会导致即使Activity结...原创 2020-08-26 17:40:45 · 1491 阅读 · 0 评论 -
Android 5.1之前版本加载WebView崩溃和乱码,图片宽度不能填充屏幕问题
开发过程中或多或少有一些极端情况,比如这次有用户说他是安卓5.1系统,使用我们APP时发现打开WebView要么是乱码,要么崩溃,这个问题其实不是什么问题,因为在开发之初根据客户人群制定了支持安卓6.0以上版本,但是作为一名开发者来说,有问题就要撸,撸到没问题,撸到代码质量高,撸到APK包小,撸到用户体验好那就来解决一下吧,创建一个原生虚拟机测试一下,emmm……确实有...原创 2020-04-27 11:13:12 · 9638 阅读 · 0 评论 -
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 · 778 阅读 · 2 评论 -
android图片压缩办法总结
在Android中 如果 有图片 就 狠狠地压缩处理,如果 不处理,到最后处理起来 很麻烦的,引起不必要的麻烦,和浪费时间……这里 提供一个工具类:package com.jiayinlending.function.mine;/** * Created by wenjing on 2017/5/26. */import java.io.ByteArrayInputSt...原创 2017-05-26 16:12:23 · 1265 阅读 · 0 评论 -
Android 布局color颜色值大全
开发中老是因为颜色色差存在而苦恼,现在有它,我用的放心……打开color.xml,在<resources>标签中放入颜色资源,如下:<resources> <color name="white">#ffffff</color> <!-- 白色 --> <color name="ivory">#f...原创 2016-12-13 09:30:06 · 16705 阅读 · 9 评论 -
如何提升自己的技术层次,代码能力
一名学生从高中报考计算机相关专业,在茫茫专业中又从事安卓,本就不是一件容易的事情,能坚持下来的人更是少之又少(用心的)……大学,很多人认为经过了高中的忙碌阶段,到大学终于可以没人管自己,放飞自我,展翅高飞了;其实不然,大学生涯准确来说,已经和国外教育模式一致的,让个人养成一个独立的思维方式,对自己负责任的态度,你若严格要求自己,那么社会也不会亏待你,各种好就业机会,各种政府补贴,各种政策都...原创 2019-11-19 10:21:26 · 292 阅读 · 0 评论 -
Git代码合并使用Rebase还是Merge,区别?
使用git协同开发是否对提交的大量无用合并代码记录感到烦烦烦,没啥用又不想看到,就像下图一样,如何让提交、合并记录更简洁明呢?请往下看:官方说不能直接使用merge,最好先使用rebase;因为如果直接使用merge会将自己新增的功能与最新的版本合并成一个新的版本。而使用rebase是先把最新的版本拉下来,并把自己新增功能的改动编辑在最新的版本里,这样再次提交时,我们新增的改动就...原创 2019-11-13 14:20:42 · 1255 阅读 · 0 评论 -
自定义View之画图并截屏保存篇
自定义View相信大家应该了解的很多了,但是一般只是涉及使用,很少有时间来自己写一个自定义View,最近在想如何在屏幕上签名然后截屏保存呢?那就来看下吧……先来一首歌陶冶下情操:《你给我听好》你看看大伙儿合照就你一个人没有笑是我们装傻 还是你真的有很多普通人没有的困扰我才懒得给你解药反正你爱来这一套为爱情折腰 难道不是你一直以来戒不掉的癖好你在想谁想到睡...原创 2019-11-13 14:19:10 · 480 阅读 · 0 评论 -
Android——非常好用、简单实用的通用dialog实现方法
Android QQ交流群:813273942Android中实现dialog的思路方法有很多,默认的、自定义的都有很多方法,每一次都得修修改改,如何偷懒呢?难道就没有一种通用的dialog吗?终于,不负众望,不辱使命……还是先来效果图:Step1:创建fragment继承DialogFraagment,如果想点击,就自行实现方法即可;public c...原创 2017-10-18 17:02:29 · 2466 阅读 · 0 评论 -
Android studio差异化打包,一套代码如何Gradle一键打包多个不同的APP?
随着开发的效率提升,越来越多的需求诞生了,比如我今天说的这个如何一套代码加载不同的app_name,布局文件,主题,资源文件?一定要做一个会“偷懒”的程序员,遵守“懒”的一字方针;究竟怎么做呢?因为之前做过多渠道打包,猜想是不是和多渠道打包差不多呢?做任何事情之前得先分析,需要怎么做?从哪几个方向会出发?时间是多久……分析之后就开始实施了:具体如下:第一步:在app的...原创 2019-08-19 11:43:47 · 5423 阅读 · 5 评论 -
android.support.design.widget.TabLayout的使用
现在非常流行的是TabLayout+ViewPager+Fragment1:首先sdk的版本必须是22,要想使用这个控件,你必须下载或更新sdk的版本,你要更新的22也就是5.1的版本,才会有这个控件的出现。布局文件如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="ht...原创 2017-02-22 15:50:54 · 1355 阅读 · 0 评论 -
Android 隐藏手机号中间四位
1、隐藏手机号码中间四位:[java] view plain copys.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); 2、隐藏邮箱:只显示@前面的首位和末位[java] view plain copys.rep原创 2017-03-02 14:25:23 · 4144 阅读 · 7 评论 -
Android studio 使用SVN需要忽略的文件
Android Studio创建的Android项目一般需要忽略1、.idea文件夹2、.gradle文件夹3、所有的build文件夹4、所有的.iml文件5、local.properties文件。原创 2017-03-08 18:02:48 · 1604 阅读 · 0 评论 -
Android获取SharedPreferences三种方式
Android数据持久化方法中最简单的一种,即使用Preferences的键值对存储方式。这种方式主要用来存储比较简单的一些数据,而且是标准的Boolean、Int、Float、Long、String等类型。 android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。有三种获取系统中保存的持久化数据的方式:1.this.原创 2017-05-23 09:59:50 · 1802 阅读 · 0 评论 -
Android中 String 和 Uri类型和 Json的转换
1,String ----> UriUri uri = Uri.parse((String) str);例如: str = “content://*******”str = "file://**********"str = "http://*************"str = "ftp://***********"2,Uri -----> String原创 2017-05-19 14:28:46 · 9544 阅读 · 0 评论 -
Android中实现对多个EditText的输入监听
开发中,有时候会使用多个editText,获取到输入的内容,给一个EditText设置输入监听很简单,那么多个EditText呢?这里提供一种方法,可以快速搞定,上代码来……@Overrideprotected void initView(View view) { super.initView(view); TextChange textChange=new TextCh...原创 2017-05-16 20:19:50 · 6887 阅读 · 0 评论 -
android.os.DeadObjectException
1.deadObjectException异常,说明应用的service已经停止;要么是从操作系统中丧生,要么从应用程序中终止;在清单文件的application标签下面添加即可:android:hardwareAccelerated="false"application android:name=".AppContext" android:allo原创 2017-05-26 17:30:28 · 1452 阅读 · 0 评论 -
Android 调用系统相册,针对6.0以上 崩溃 解决办法
Android6.0 是一个分界线6.0之后调用 系统相册 data会返回 null首先,打开系统照相机Intent intent = new Intent(Intent.ACTION_PICK);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");// 开启一个带有返回值的...原创 2017-05-27 10:16:53 · 2001 阅读 · 7 评论 -
Android中使用开源框架citypickerview实现省市区三级联动选择
github地址:crazyandcoder/citypicker3. 实现方法(1)添加依赖[java] view plain copy dependencies { ... compile 'liji.library.dev:citypickerview:0.7.0' } (2)代码实现这里就不在介绍布局文件了,直接演示实现代码:[java] view plain ...原创 2017-05-17 13:16:41 · 3246 阅读 · 8 评论 -
Androd中 listView点击每一个 Item里面的状态,跳转到相对应的不同 界面
最近在做一个项目,里面的功能是,listview的每一个item,一样,但是点击每一个item跳转相对应的界面,不一样,我们一般做的都是跳转到一个相同的界面,传递bundle,这次是不同的界面,传递bundle,小伙伴们知道怎么实现吗:我这里只是一种解决办法,其他的办法也有很多,请开动脑筋:设置listview的item监听:mlistView.setOnItemClick原创 2017-05-27 11:45:08 · 7849 阅读 · 5 评论 -
第一次安装android studio时候弹出unable to access android sdk add-on list解决方法
Android QQ交流群:826464336第一次安装AS时候弹出unable to access android sdk add-on list原因是你电脑没有SDK而且你下载的android studio又是不带SDK的;解决方法:在自己安装的目录下找到:bin\idea.properties打开这个文件末尾添加一行disable....原创 2017-02-22 19:49:29 · 12594 阅读 · 4 评论 -
Android 手动显示和隐藏软键盘
1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)[java] view plain copy print?InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(原创 2017-05-17 18:12:56 · 761 阅读 · 0 评论 -
Android中使用Frecso加载图片,属性设置
基本使用如下,,需要加载第三方库(Fresco)Uri uri = "file:///mnt/sdcard/MyApp/myfile.jpg";int width = 50, height = 50;ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri) .setResizeOptions(new R原创 2017-05-19 14:30:02 · 1069 阅读 · 0 评论