AS修炼手册
文章平均质量分 59
莫…
记念、这一路的 ~~ 跌跌撞撞
展开
-
亲测实现PopupWindow显示FlowLayout流式布局带固定文本/按钮(位置可改)
PopupWindow显示FlowLayout流式布局带固定文本/按钮原创 2023-02-22 17:01:14 · 1749 阅读 · 0 评论 -
简单粗暴包教包会的单元测试
什么是单元测试?为什么要用单元测试?会用单元测试吗?(自解)一个同事问我,明明后台都是传6,可是显示出来的就是不一样,这个问题非常严重,而且界面在项目比较深层处,还需要满足某些条件才能进去。阅读一下相关代码,发现共同使用同一个方法,单独抽出来(图中ss方法),进行单元测试,就可以排查到问题所在了。以前我对单元测试这个,不怎么上心的,现在使用某些方法时,会进行单元测试,把一些特殊数据也测一边,免得因此被怼扣绩效奖。1.单元测试操作详解图(看图不会,评论区教):...原创 2020-10-13 17:30:37 · 826 阅读 · 0 评论 -
亲测实现:获取日期时间各种格式的:yyyy-MM-dd HH:mm:ss、yyyy年MM月dd日等等不需要再截取拼装了
这些功能应该挺多人都知道了,只是一开始我不懂,就走了弯路,后台传来的是yyyy-MM-dd,显示要求是,日月有一位数时前面不能加0,eg:2020-03-22要显示成2020年3月22日,当时自己用了最笨的方法用substring各种截取拼装、以及获取本地日期也是,后面偶然间得知,其实不用那么麻烦的,再次记录一下。一.yyyy-MM-dd HH:mm:ss .eg:2020-03-22 11:...原创 2020-03-16 09:48:07 · 4341 阅读 · 0 评论 -
亲测实现:RecycleView健康问卷布局(题目、选项动态)、逻辑(单选、多选功能、提交答案、显示上次选择的答案)
描述:健康问卷的题目、题目对应的选项都是由后台配置的,所以界面的布局是要根据数据来决定,使用了RecycleView实现二级列表的效果来动态布局问卷,效果图如下(录了视频,因为转GIF麻烦,所以就不上了):拿到这个问卷,想到的问题:标题中,(单选)、(多选)紧随标题的右边,两个控件要怎么布局? JSON数据及模型、在正常的项目中,提交数据后再次进来会显示之前的选中答案,要怎么显示...原创 2020-03-11 17:07:39 · 1281 阅读 · 1 评论 -
亲测解决:自定义相机Camera2前后置拍照时相片翻转、旋转等显示问题
一开始我遇到的问题是,前置拍照获得的照片各种旋转、翻转,就是不能正常,解决后的前后置拍照得到的图片都正常了,效果图如下(看底部中间显示的相片): 自定义相机的实现,网上有很多代码了,我这里不贴全部的代码,就贴解决前后置拍照怎么处理照片使其正常(记得给相关权限),布局中用到的是TextureView控件。1.前后置时的SparseIntArray 设置(默认的是前...原创 2020-03-02 16:00:04 · 7191 阅读 · 7 评论 -
实现:获取相应的权限后自动执行之前的操作
一开始,我写的是,点击弹出需要的权限,允许后还需要再次点击才会执行我想要的操作,测试为此提出优化,应该是“权限获得后”就会继续前面的操作,而不是用户再操作一次,以此记录一下。怎么知道我们是允许、还是拒绝权限呢?这时候就需要onRequestPermissionsResult或onActivityResult方法。坑:在fragment里面获取权限,不会执行fragment里onReq...原创 2020-02-21 14:54:25 · 2113 阅读 · 1 评论 -
实现:RecycleView+CheckBox多选并提示选中什么
效果图如下:思路就是RecycleView+CheckBox,在适配器写个“点击”接口,在点击时调用传给Activity选中的position,进而可以得知选中的有哪些,其中需要注意的是:CheckBox控件的clickable要设置为false,因为点击事件是针对整个item布局的,当不设置为false时,就会出现统计不准确问题。步骤如下:1.准备item布局item_chec...原创 2020-02-20 15:37:27 · 2928 阅读 · 0 评论 -
Android:倒计时、定时器、定时执行次数使用笔记
经常要用到倒计时、定时器,但总是搞不清楚,所以这里整理一下,方便后面使用 。一.倒计时(3、2、1)CountDownTimer()//一共3秒,每隔1秒执行一次CountDownTimer timer = new CountDownTimer(3000, 1000) { @Override public void onTick(lon...原创 2020-01-08 14:32:55 · 5757 阅读 · 0 评论 -
长话短说:十进制与其它进制的相互转换
十进制转其它进制(方法是自带的):转2进制 Integer.toBinaryString(n);转8进制 Integer.toOctalString(n); 转16进制 Integer.toHexString(n); 转 r 进制 Integer.toString((String) s, (int)r); r进制转10进制 Intege...原创 2020-01-07 11:08:13 · 1013 阅读 · 0 评论 -
亲测解决升级为AndroidX出现:名称冲突: BusMutableLiveData中的observe(LifecycleOwner,Observer
Android一键升级为AndroidX(可参考:https://blog.csdn.net/weixin_40420578/article/details/100132061)LiveDataBus中出现的错误:错误: 名称冲突: BusMutableLiveData中的observe(LifecycleOwner,Observer<T#1>)和LiveData中的obser...原创 2019-12-27 15:15:21 · 2769 阅读 · 0 评论 -
一步步带你实现极光推送、统计(含事件统计,自定义计数、计算一直没有的原因)
极光推送官网文档https://docs.jiguang.cn//jpush/guideline/intro/自定义计数、自定义计算一直没有这个坑(最后面有写原因、解决),我研究、找资料、反复对比demo、极光文档耗了大半天,但是最后问题解决了,很开心。这也是我,为什么明明官网写得很好了,还多此一举写篇文章,因为想记录自己完成的这个过程,就比如这个坑,下次无论如何我都不会再进去了,有些东西,...原创 2019-12-25 17:35:59 · 2122 阅读 · 0 评论 -
一步步带你实现bugly异常上报、版本检测更新(应用升级)
一.异常上报(1)在Bugly上的操作1.bugly上注册账号:https://bugly.qq.com/2.创建产品3.查看App ID、App Key(项目中需要到)4.设置WebHook(以钉钉群为例,如何创建钉钉群机器人:https://blog.csdn.net/weixin_40420578/article/details/103277359)...原创 2019-12-23 15:08:03 · 3706 阅读 · 0 评论 -
okhttp3+retrofit2+rxjava+MMVP以注册为例概述一个网络请求的完整流程
注:这里以注册为例概述网络请求的完整流程,是指以我的方式、流程进行的请求,不同的开发者有不同的思路和流程一.引入包(如果有哪些找不到文件的,那就是缺包了)、网络权限api com.squareup.retrofit2:adapter-rxjava:2.5.0api com.squareup.retrofit2:converter-gson:2.5.0api io.reactivex....原创 2019-12-19 11:42:53 · 604 阅读 · 0 评论 -
实现SharePreference(本地)保存、获取对象、List方法及调用示例
1.对象的保存、获取、调用//保存public static void putObject(Context context, Object object) { String key = getKey(object.getClass()); Gson gson = new Gson(); String json = gson.toJson(ob...原创 2019-12-13 15:46:23 · 721 阅读 · 0 评论 -
实现自定义宽高(全屏)、透明度、暗度的dialog
效果图如下:1.synchronize_photo_dialog布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pa...原创 2019-12-13 15:24:12 · 672 阅读 · 0 评论 -
实现Git获取公钥
1.输入:ssh-keygen -t rsa -C "你的邮箱"2.cat ~/.ssh/id_rsa.pub原创 2019-12-12 11:13:18 · 2202 阅读 · 0 评论 -
一步步带你实现Jenkins+Gitee+钉钉自动化构建部署
可以直接拉到文章最后第7点看效果,如果符合你的需求,再细细看!Jenkins:是一个开源软件项目,是基于Java开发的一种持续继承工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。码云(gitee.com)是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管背景:在Gitee创建了项目,如下图所示:...原创 2019-12-12 15:49:18 · 1404 阅读 · 0 评论 -
Gitee(码云)+git+SourceTree+Android studio+钉钉实现代码自动化管理
我的项目中用到的是:码云中创建项目,用git下载到本地,关联好SourceTree、Android、钉钉群。用SourceTree进行提交上传代码到码云,只要有变动会实时发送信息到钉钉群。SourceTree:拥有一个精美简洁的界面,大大简化了开发者与代码库之间的Git操作方式,这对于那些不熟悉Git命令的开发者来说非常实用。码云(gitee.com):是 OSCHINA.NET 推出的代...原创 2019-12-02 14:51:49 · 867 阅读 · 0 评论 -
蒲公英上传应用后推送消息到钉钉、微信、QQ
蒲公英上传生产包,测试人员通过后,就直接下载发布到应用商店的。当发布应用时,推送消息给相关人员,不需要开发一个一个私聊、发下载链接的了。一.绑定钉钉群,上传应用后,会推送到钉钉群1.在钉钉群创建机器人创建群——智能群助手——添加机器人——自定义——填写相应信息——得到了Webhook(后面用到)查看Webhook:智能群助手——点击创建好的机器人2.上传一个apk后,按图...原创 2019-11-28 16:51:18 · 1698 阅读 · 0 评论 -
Fir.im上传apk推送消息到钉钉群的实现
开发过程中,在Android studio通过fir.im插件上传apk后,发送到钉钉群,这样子测试人员可以通过链接下载,进行测试,其他人想看效果的也可以通过链接下载。自己折腾了一个上午才出效果,亲测有效,想做的朋友按步骤操作即可(不会写开头描述为什么要写这篇博客,就随便写写了勿怪)。一。创建钉钉机器人创建群——智能群助手——添加机器人——自定义——填写相应信息——得到了Webhoo...原创 2019-11-28 16:58:41 · 2108 阅读 · 4 评论 -
亲测有效:Arouter传递对象,在activity、fragment中接收
先上接收到的对象效果(Activity中的)1.传递 .withSerializable("dateBean",dateBean)2.对象(这里只是示例,所以没有把全部的属性放出来,用…………代替了。我传递的是DataBean,所以DataBean进行Serializable)public class LeaveListResponse { …………………………...原创 2019-11-21 11:01:46 · 6279 阅读 · 0 评论 -
实现android自定义下拉选择框,可随意更改样式
先看效果图是否合口在登录界面选择角色,上下箭头是会变化的,默认是选择学生,当选择老师时,对应的icon、文字相应的改变(样式可以随意更改)。使用的是RecycleView+自定义适配器+PopupWindow实现的:1.准备好一个item_login_role.xml<?xml version="1.0" encoding="utf-8"?><androi...原创 2019-11-20 11:52:53 · 1219 阅读 · 0 评论 -
Android快速查找库最新版本号、下载jar
在项目中我们经常需要引用第三方库,但是经常不知道这个库最新版本号是多少,不知道在哪里下载对应的jar,现在只需一招即可。https://jcenter.bintray.com/+你要查找的第三方库(把.换成/,把:换成/)eg:jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.0在浏览器输入:https://jcenter.b...原创 2019-10-31 14:29:26 · 804 阅读 · 0 评论 -
实现Android现有项目加入cordova进行混合开发
在此之前,你可能需要看另外一篇博客:https://blog.csdn.net/weixin_40420578/article/details/102610618通过上面博客,得到了hello项目。准备现有的Android项目,我的是project_code,效果图如下(图一是平常练习的demo): 按如下步骤操作:一:(前面得到的hello...原创 2019-10-25 10:27:08 · 1210 阅读 · 0 评论 -
android + cordova开发以toast为例
在此之前你可能需要看一下我的另外一篇博客:https://blog.csdn.net/weixin_40420578/article/details/102610618用Android studio打开hello——platforms——android(hello的由来从前面博客可知),此时你打卡的项目目录应该跟下图一样的(重点已用红色框出来),最后效果图如右边所示: 按以...原创 2019-10-18 14:37:24 · 371 阅读 · 0 评论 -
Android Studio自动引入删除包(精简版)
File——>Settings——>Editor——>General——>Auto Import——>Add unambiguous imports on the fly(引入)——>Optimization imports on the fly(for current project)(删除) 如下图: ...原创 2019-08-27 16:46:01 · 297 阅读 · 0 评论 -
databinding使用include完美封装标题栏,扩展性强
接下来跟我一起动手封装标题栏,废话不多说,走起!!!1.build.gradle下添加(哪个module需databinding就在对应的build.gradle下添加):android { dataBinding { enabled = true }…………………………}2.标题栏xml布局如下:<?xml version="1.0"...原创 2019-08-30 17:35:07 · 1505 阅读 · 0 评论 -
Eventbus学习笔记
EventBus https://github.com/greenrobot/EventBus手动敲代码实现一下eventbus的注册事件、发布消息、接收消息、注销事件订阅,有助于理解下面以loginActivity(注册事件、接收消息、注销事件)、PostMessageActivity(发布消息)为例,按顺序进行讲解一.在build.gradle引入:版本号可以在github找最...原创 2019-09-02 12:00:41 · 153 阅读 · 0 评论 -
Android代码绘制不规则控件,学其绘制思路,举一反三
效果图如下:图中运用到的:绘制弧度、线、圆及旋转,需要对Path、Pain、Matrix等常用属性有一点点了解,还需要数学知识。知道其绘制思想后,就可以举一反三,绘制各种你想要的图形。一个好的控件,必须要有扩展性,里面的一些属性必须可以让用户轻易设置,eg:大小、颜色、弧度……直接上代码:里面有详细解释:一.在res——values下建立attrs.xml文件,方便用户在...原创 2019-09-06 15:11:05 · 968 阅读 · 0 评论 -
Android代码规范积累
AS自带的代码检测:Analyze——Inspect Code(英文提示错误类型、错误原因),利用插件Alibaba Java Coding Guidelines(汉化了)……一些修改可以直接点击图中红色框框,会自动帮修改好,下面是整理好常见的规范:1.所有数据get之前判空;eg:if (null != user){String userid=user.getUserId;}...原创 2019-09-10 15:19:50 · 162 阅读 · 0 评论 -
Android代码获取string、mipmap、color资源
1.直接R.**.xx获取:this.getString(R.string.zm) //Activity getActivity().getString(R.string.zm) //Fragment.setBackgroundResource(R.mipmap.zm) //TextView设置背景图.setImageResource(R.mipmap.zm) //Image...原创 2019-09-18 16:54:36 · 2851 阅读 · 0 评论 -
Android MVC、MVP、MVVM学习笔记
一.MVC(Model View Controller)控制器(controller)将不同的View和不同的Model组织在一起view将数据传给controller,controller将数据传给model优点:耦合性低:视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码 重用性高:MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因...原创 2019-09-19 16:19:21 · 234 阅读 · 0 评论 -
我的Kotlin基础语法学习笔记
Kotlin官网:https://www.kotlincn.net/docs/reference/server-overview.html一.基本语法理解:1.常量和函数的定义:1.1语法:var/val name : Type注:没有分号(;),可以省略Type。Kotlin会类型推导出变量的类型var:可以被修改的变量 var a:String="" //声...原创 2019-09-27 10:12:50 · 202 阅读 · 0 评论 -
Android Studio快速打造个性化控制台输出颜色
File->Settings ->Editor -> Colors Scheme (我的AS版本是3.5,不同版本名字可能不一样,建议使用后面快捷键)-> Android Logcat上面全部步骤快捷键Ctrl + Alt +S(推荐)点击Debug——>Inherit values from:去掉勾选——>Foreground 复选框选上,双击Foregr...原创 2019-08-28 09:43:25 · 1302 阅读 · 0 评论