- 博客(242)
- 资源 (3)
- 收藏
- 关注
原创 Java 定时任务-最简单的3种实现方法
一、TimerTimer是JAVA自带的定时任务类,实现如下:publicclassMyTimerTask{ publicstaticvoidmain(String[]args){ //定义一个任务 TimerTasktimerTask=newTimerTask(){ @Override publicv...
2022-03-07 16:58:38 56562 7
原创 Android 超简洁的视频播放器推荐 ArtPlayer
深海最近做视频相关需求的时候, 在GitHub上找到的一个播放器:ArtPlayer 相对比其他三方的播放器来说,更加简洁和易扩展.支持内核替换ijkPlayer支持 ExoPlayer支持GitHub 地址:https://github.com/maiwenchang/ArtPlayer使用起来有多简单呢? 看代码:首先加入这些依赖 别问我为什么有3个 ...
2019-05-29 16:39:48 12966 43
原创 Android 判断App运行在模拟器还是真机上的最终解决方案
Android 判断App运行在模拟器还是真机上的最终解决方案最近公司搞了一波送福利的活动,被人用模拟器恶意刷注册量了.后来我经过研究和实测,得出以下方法,目前还没有发现有模拟器能突破这个检测,方法如下:方法使用: if(Android_ID_Utils.notHasBlueTooth() ||Android_ID_Utils.notHasLightS...
2019-02-21 18:06:05 17799 21
原创 Android 极光IM简单的聊天界面全手动实现
Android 极光IM简单的聊天界面全手动实现说到实时通讯,很多人都想到融云,极光,环信,网易啊等等一系列,因为需求原因,我们最近的项目呢是用的极光.由于极光的界面Demo十分繁琐,很多功能我们用不到,所以我干脆自己写了会话列表和聊天界面首先呢,消息展示和踏板是这样的:接下来说一下实现的过程:极光IM的集成呢我这边就不...
2018-11-27 18:18:20 13219 75
原创 Android String资源文件中,空格、换行以及特殊字符如何表示
例:<string name="test">test test</string> 例:<string name="test">test \n test</string> 例:<string name="test">test \t test</string> 前面加转义符号“ \ ”即可 例: <string name="test" form
2024-09-20 16:35:36 333
原创 Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
(1)处理Activity本身继承的方法onRequestPermissionsResult。(2)实现接口EasyPermissions.PermissionCallbacks来接收请求结果。(4)定义PermissionsCollBack是对结果返回的进一步简化 (非必须)(3)定义申请权限跳转带出去的Code(Int类型,合法范围0-255)
2024-09-18 14:50:28 358
原创 Android 用线程池实现一个简单的任务队列(Kotlin)
在Android中,很多人喜欢用Handler的postDelayed() 去实现延时任务.要使用postDelayed(),去实现延时任务队列,就不可避免要使用递归.但是这样做,代码的简洁性,和书写的简易,就远不如使用线程池.
2024-09-14 13:53:10 728
原创 Kotlin 代替Java接口回调,就这么简单
通常三步:1 定义接口和方法;2 使用接口中方法;3 继承接口并实现方法;1定义抽象方法 2 直接调用 3直接实现。使用Kotlin呢?
2024-09-11 17:22:48 271
原创 Android 语言国际化三步
1.罗列: 可以多罗列几个 不需要全部实现。res下创建这个文件:locale-config。每次切换完->存缓存>然后立即调用以下代码。刚进入的时候调用一次以下代码。
2024-09-10 16:32:54 452 2
原创 Android 使用JSON动画:Lottie框架基本使用
把第二步控件lottie_fileName属性的xxx.json换成你扔的文件名称(切记名字后缀带上)多半是因为Json文件名字错误,结尾没有把".json"后缀写上,GitHub的一种跨平台动画解决方案三方框架。注意: 相关配置属性也可以用代码进行配置。或者是文件名里有空格,两边对不上.我写文章时最新版本是6.5.2。
2024-09-06 14:22:26 670
原创 Android 在TextView前面添加多个任意View且不影响换行
dataListType的 0,1,2 分别对应三种不同的布局赋值,XML文件我就不全部发出来了,这里可以自主发挥。: (😂抱歉啊使用这边没有用Java写,不会Kotlin的应该也能看懂啥意思)
2023-09-05 17:36:04 773
原创 Android AAPT: error: resource color 异常原因处理
上面只是举例,报错的颜色和本文不对应的话,以你报错的日志中的颜色决定加入的颜色名。该异常是删除了项目创建时系统引用的颜色资源,导致的编译失败异常;根据提示在color.xml里加入报错的颜色资源。
2023-09-05 17:00:57 2980
原创 App上架应用市场操作流程
言简意赅,介绍产品的核心功能。描述你的app是什么类型,是游戏,工具还是社交等,要遵守广告法、新闻语等规则,两三句话描述app的核心特色,用几个短段落来阐述app的功能特色,最好写上联系方式,微博微信网站等。
2022-11-11 17:11:51 1436 2
原创 算法探索_罗马数字转整数
第二种是分开看待这种两位的值 CM = 900 看作是 1000与(-100) 的和,这样就可以无条件的从后往前遍历对应值,进行一位一位的无限累加;我采用的是第二种方案。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。:两种方案,一种是把CM XC IV这种 值看作一个整体去遍历累加;给定一个罗马数字,将其转换成整数。,即为两个并列的 1。
2022-11-11 14:35:50 250
原创 通用数据结构设计-绝对格式
程序的健壮性,往往看他能有多少的容错性,最坏的结果是什么,例如以上的两个例子,如果价格类字段只能以Double进行传输和存储,前端无论如何展示,我传输和保存都不参与,那么永远不会有空指针和传输过程中的类型转换风险,如果时间只能以固定位数的时间戳进行传输和存储,前端无论如何展示,传输和保存都不参与,那么最坏的结果,无非是时间异常导致用户看到非法的时间,而不是服务荡机,或者前端崩溃闪退。如果降低风险,是作为架构角度的必要考虑,那么,绝对格式,则是可以拍案的一条建议。
2022-10-29 00:32:50 613
原创 算法探索-切面条(CSDN算法技能树第一题)
一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?题目给出了四个答案:分别是512、513、1024、1025。...
2022-08-26 10:12:03 213 1
原创 Java 后端 - 腾讯云短信报错:AuthFailure.SecretIdNotFound message:The SecretId is not found, please ensure that
错误码:AuthFailure.SecretIdNotFound。
2022-08-17 17:28:40 4002
原创 技术总监需要具备哪些能力?优先级?
可以看到第一档是 人员/项目管理、问题解决、汇总/演讲、快速学习。如果希望走这条路的话,这也许是查漏补缺的一个思路。前不久我在CSDN发起了一个投票,这是投票结果。其实本意是希望看到这条路的技能优先级。第二档是 后端、运维、前端、运营。......
2022-08-05 16:21:15 626
原创 Android Gradle 插件版本对应图
1、手动下载最新版本的gradle安装包;2、把gradle安装包解压于。在线下载新生成的目录)中;目录下新生成的目录(3、重新运行编译项目。
2022-08-01 16:24:02 466
原创 Flutter 环境变量配置和flutter doctor中的错误解决
运行命令flutterdoctor--android-licenses然后根据提示一直回复“y”表示同意授权,直到结束。这边尽量下载最新的,或者和我这边一样也可以,默认视图可能和截图不一致,勾选右下角的对勾即可切换成图中的视图样式。如果您不开发windowsphoneapp,直接忽略这个错误即可。要是能够得到您的关注,深海会更加荣幸,感谢各位的支持!如果您感觉深海写的不错的话,请给文章点个赞吧~右键点击我的电脑-属性然后找到环境变量。2.运行命令flutterdoctor。...
2022-07-29 15:30:23 4488 1
原创 Android 在原生项目中新建一个Flutter的Module
这个地址的两个xxx,第一个改成你的旧项目名,第二个改成刚刚建的Flutter项目名,这里的结构以您的实际情况为准。插件安装完后会提示重启AndroidStudio,重启完毕后进行第三步;要是能够得到您的关注,深海会更加荣幸,感谢各位的支持!Dart插件的作用是Dart语法的提示和补全等功能。创建完成后,将这个Flutter项目拷贝到旧项目下。等同步完成后,你会发现项目中多了一个这个文件夹。如果您感觉深海写的不错的话,请给文章点个赞吧。如果您有不同的见解或疑问,欢迎到评论区留言。至此结束,目的达成。....
2022-07-25 17:54:43 1758 1
原创 Flutter与Kotlin和Java的等义对比(简单函数&变/常量)
以上可以看出函数的表达,Dart比Kotlin更加简洁,Kotlin比Java更加简洁!
2022-07-25 15:32:57 855 1
原创 接口测试-简单的接口自动化测试Demo
点击这里两个绿色三角图标的其中一个即可成功运行。好了,文章到这里就结束了,如果您有不同的见解或者有疑问的话欢迎到评论区留言。如果您感觉深海写的不错的话,请给文章点个赞吧,感谢各位的支持!......
2022-07-18 11:42:52 953 2
原创 算法探索-判断字符串是否连续、比较时将字符转ascii码还是unicode码?
二、实现思路:首先明确:连续的字符串的ascii码是递增的,且间隔为1,比如“abc”的ascii码为 “97、98、99”。为什么转ascii码,而不是unicode码? 这里应该转ascii码,因为unicode与字符不是连续对应的四、运行结果:...
2022-07-04 17:39:12 687 1
原创 Android ScrollView嵌套RecyclerView要做的三件事儿
这样做为什么?解决RecyclerView展示不全的问题。二、禁止RecyclerView的纵向滑动(横向同理): 这样做为什么?解决RecyclerView滑动无惯性问题,解决滑动显示头尾阻尼问题。 三、禁止RecyclerView的默认聚焦: 这样做为什么?解决RelativeLayout处于非顶部,却在加载后处于页面顶部的问题kotlin版的两项配置:文章到这里就结束了。如果您有不同的见解,或者疑问的话,欢迎到评论区留言。如果您感觉
2022-06-21 15:27:42 3995 6
原创 Android 配置简便的时间选择器 PickerView
GitHub官方地址:https://github.com/Bigkoo/Android-PickerViewhttps://github.com/Bigkoo/Android-PickerView1、导入依赖:2、在使用前初始化:2、触发显示: 文章到这里就结束了,如果您有不同的见解或者有疑问的话欢迎到评论区留言。如果您感觉深海写的不错的话,请给文章点个赞吧,感谢各位的支持!...
2022-06-20 12:01:34 1227 3
原创 后端与前端架构设计的区别
这里的后端指Java后端,PHP后端,GO后端,服务器端等。前端指Web端(网页,小程序,APP内嵌),移动端/Pad/手表/定制设备等,包括(Android & IOS & 鸿蒙)等系统。前后端架构设计差异:前端架构主要侧重点在于视图与数据走向, 而后端架构主要侧重分布式设计与中台服务治理。前端面向用户,更加注重用户的直观体验,好看的页面外观,界面的快速相应,炫酷的动画设计都是前端程序不可缺少的重点。而前端数据的拉取、上传与计算,除了需要本身架构的匠心设计,更离不开后端程序
2022-05-17 14:53:19 2105 1
原创 Android 架构设计(五):命名规范与层级规范
命名规范:程序包: com.xxx.xxx主要强调其唯一性,一般使用公司域名/简写+APP简写,全小写。比如:微信包名:com.tencent.mm 淘宝包名:com.taobao.taobao业务包: xxx一般为全小写的单个单词,主要强调其业务范围,业务类型或者功能比如:controller activity view utils类:XxxXxx一般使用大驼峰命名法。主要强调该类的作用与所属类型比如:MainActivity 作用:Main程序入口界面
2022-05-09 17:57:30 1810 2
原创 Java 虚拟调研问答写入文件
最终产出文件内容举例:代码如下:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Random;public class Test2 { public static ..
2022-05-09 11:01:29 170
原创 微信公众号创建与审核相关注意事项
前言:深海今天由于公司业务问题,创建了企业微信公众号,这边分享一下注意事项和需要准备的材料微信公众号类型为三种,分别是:各自有不同的功能范围,一旦创建无法更改。在选择公众号类型时,请谨慎了解其区别,就比如我这边用到模板消息的功能模块,订阅号就无法加入该功能模块,只能重新创建一个新的服务号类型的公众号。需要用到哪些材料/资料?1.营业执照2.企业账户的卡号与开户行信息3.申请人的个人信息创建公众号时需要审核,审核的最后一步需要小额打款认证认证公众号需要支付300元人民币(不退还),并在认证的最后一步再次进行小
2022-04-26 17:00:51 4716
原创 SpringBoot/SpringCloud项目常用注解释义_Controller篇
Controller层常用注解:一、修饰类的注解:@RestController :是@controller和@ResponseBody 的结合@Controller:将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。 @ResponseBody:该类中所有的API接口返回的数据,无论对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端@Validated:参数合法性分组校验 具体使用...
2022-04-24 16:54:25 901 1
原创 Java 不区分大小写比较字符串
比较字符串时使用:equalsIgnoreCase()String.equals()对大小写敏感,而String.equalsIgnoreCase()忽略大小写例如:"ABC".equals("abc")是false"ABC".equalsIgnoreCase("abc")为ture源码: public boolean equalsIgnoreCase(String anotherString) { final int len = length();
2022-04-24 11:06:56 6707
原创 Android 点击软键盘“下一项”引起崩溃如何解决?为什么会崩溃?
某种情况下,点击EditText吊起软键盘后,再点击软键盘中的“下一项”或者“下一步”按钮时崩溃?一、场景演示二、报错提示focus search returned a view that wasn't able to take focus!翻译:三、问题解决在吊起键盘的EditText中加上这条属性:android:imeOptions="actionDone"如下: <EditText android:layou.
2022-04-20 17:55:50 1891 1
原创 SpringBoot配置文件的加载位置与优先级
一、加载位置与加载顺序SpringBoot项目启动时,会依次从四个地方扫描加载配置文件分别是这四个地方: file:/config/ file:/ classPath:/config/ classPath:/ 二、优先级当四个地方出现重复的配置时,以最先扫描到的为准也就是说以上四个位置,优先级是从高到低排列file:/config/ 最高 classPath:/最低这时候,同样的配置,高优先级生效...
2022-04-18 16:21:47 708 1
原创 Android EditText如何在最好的时机判断输入长度超出
先上结论:假如长度限制为200,maxLength需要设置为201(必须要大于200,原因后面揭晓)<EditText android:id="@+id/item_edit" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@null" android:gravity="start
2022-04-06 15:54:50 3046
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人