自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

裕博的博客

作者本人是一个Android工程师,立志成为一名全栈类型工程师。

  • 博客(390)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android开发常用的String操作(Java版代码)

前言在日常的Android开发当中,我们对String的操作会比较多,收集日常开发当中可能会遇到的情况以及相关的代码。这篇博客会不断更新,有兴趣的小伙伴可以收藏一下,说不定哪天开发要用到。博客变量说明// 下面使用的变量字符串String str ="";判断第一个字符举例子,判断一个字符串的第一个字符是否是"中"。if (str.startsWith("中")) { //...

2020-02-28 13:55:22 1315

原创 AS——共享开发中好用的插件

前言在日常的开发当中,我们使用Android Studio作为编译器,我们可以安装各种插件提交我们的开发效率。分享一下我常用的插件,后期发现更多好用的插件也会在这里更新。GsonFormat根据Gson库使用的要求,将JSONObject格式的String 解析成实体类,生成get/set方法。Statistic统计代码行数,如果是做外包的小伙伴可能会经常用到,因为申请软著的时候需要你提...

2020-01-31 21:18:46 642

原创 开发中常用的Git命令与使用问题收集

开发当中,我们一定会用版本控制工具Git。下面就分享我平时比较常用的Git命令或者我收集到的Git命令。初始化Gitgit init

2019-12-06 09:35:08 292

原创 开发中的adb命令

在Android开发和测试当中,我们会经常使用到adb命令,下面就分享我常用的adb命令和一些我收集到的adb命令。可能会不全面,但是我会一直更新的,对adb命令感兴趣的小伙伴可以收藏我这篇文章。1.adb的启动命令adb start-server2.adb的关闭命令adb kill-server3.adb的安装命令adb install [apk文件所在位置]4.adb查看连...

2019-09-13 19:27:39 257

原创 Gradle笔记——Android开发常用的Gradle依赖

在日常的Android开发肯定少不了Android的build.gradle文件配置,下面是我收集常用的依赖配置,每个月会更新一次。开发环境JDK环境:JDK1.8。编译器:Android Studio3.0以上。配置Java8依赖大部分依赖都要支持Java8。compileOptions { sourceCompatibility JavaVersion.VERSION_1_8...

2019-09-09 01:40:06 804

原创 Android-推荐一个视频压缩库RxFFmpeg

最近项目当中有遇到上传视频的时候,需要做合理压缩的需求。分享一下我使用的视频压缩库,希望能帮助遇到同样有视频处理的需求的小伙伴。RxFFmpeg依赖这个开源库一共有三个版本,这里贴两个版本的依赖://完整版implementation 'com.github.microshow:RxFFmpeg:4.9.0'//极速版 (预计占用 4M 左右空间),主要移除了一些不常用的编解码器implementation 'com.github.microshow:RxFFmpeg:4.9.0-lite'.

2022-01-17 07:32:33 3764 1

原创 Android-推荐一个视频播放库JZVideo

最近项目当中有用到视频播放器这个功能,分享一个我的开发心得。一般情况下,我们不会去写一个视频播放器,因为需要很多知识和播放场景考虑。分享一个我使用到的视频播放器的库,JZVideo(俗称饺子播放器)。JZVideo集成implementation 'cn.jzvd:jiaozivideoplayer:7.5.0'XML使用<cn.jzvd.JzvdStd android:id="@+id/jz_video" android:layout_width="match_paren.

2022-01-16 12:42:54 5741

原创 Android-调用微信支付失败的情况

最近工作中,开发的App版本需要加入微信支付、支付宝支付、QQ钱包支付功能。一般情况下,我们支付功能都是封装好的支付模块,支付方面一般不会有重大的更新。但是我却遇到了:微信支付一直调不起微信客户端,SDK一直返回-1。微信支付返回-1的情况结合我之前的开发经验,个人觉得可能有以下几种情况:微信客户端校验了应用的签名,签名不一致的情况会返回-1;手机端微信做了分身或者双开处理;我们开发使用的签名和平台的应用签名不一致,工程师和产品经理之间没有同步;我们开发使用的包名和平台中记录的包名不一致

2021-02-04 02:19:11 3170

原创 Android-遇到SecurityException:user 0 is restricted

最近应用做了保活服务上线之后,在oppo手机上面遇到了:java.lang.SecurityException:user 0 is restricted在查询资料之后发现,这是oppo手机上面熄灭屏幕之后,系统的电量优化导致的。我看了bugly上面的报错机型主要是:oppo R7S、oppo A53、oppo R7、oppo A33、oppo R7T。网上有人说,这并不影响App的使用。但是为了bugly的报错减少,我还是打算做出相应的处理。网络上面的建议是:try/catch,下一个版本上线看看

2021-02-04 01:42:30 478

原创 RxJava-create、observeOn 、subscribeOn、subscribe操作符

之前的博客给小伙伴们简单介绍了RxJava响应式编程的概念。我这边对RxJava的学习是通过相应的操作符的,我这个专栏会主要介绍个人在开发中常用的RxJava操作符。这篇博客重点介绍的是create操作符。注意:小编使用的是RxJava3,部分API会与网上的RxJava2教程不一样。create操作符create的字面意思就是创建。所以create操作符是用来创建一个Observable的,我们直接上示例代码:Observable.create(new ObservableOnSubscrib

2020-12-28 18:14:24 502

原创 RxJava-响应式编程简介

在聊到RxJava的时候,大家第一反应是响应式编程。可能有很多小伙伴们会问响应式编程具体是什么呢?响应式编程是一种基于异步流式编程模式。由此得出响应式编程是一种编程模式。在响应式编程当中,数据就像是一条河流,它可以被过滤,被观测,被操作。RxJava是什么?大部分人知道RxJava是响应式编程。RxJava本质是一个异步操作库,它是一个简单逻辑去处理复杂的事情的异步事件处理库。怎么去集成RxJava呢?由于小编个人主业是Android开发,那就拿Android开发为例子。在gradle文件的

2020-12-27 17:13:01 213

原创 Python笔记—TypeError: can only concatenate str (not “int“) to str

今天自学Python遇到了一个报错,报错的内容如下:TypeError: can only concatenate str (not "int") to str这个错误的意思是类型错误:字符串只能拼接字符串。错误的示例print("a+b=" + c)解决的办法通过str()函数来将其他类型变量转成String。正确的示例print("a+b=" + str(c))分析了一下自己为什么会踩坑呢?主要是编程习惯的问题,我现在的工作主要和Java打交道,日常的Java编码当中是可以字符串

2020-10-29 02:19:48 31551 1

原创 Android开发——AS编译失败,Invoke-customs are only supported starting with Android O

最近在开发当中遇到了一个编译失败的错误,记录一下。错误片段om.android.tools.r8.a: Invoke-customs are only supported starting with Android O (--min-api 26) at com.android.tools.r8.dex.r.a(:291) at com.android.tools.r8.dex.r.a(:98) at com.android.tools.r8.dex.r.b(:188) at com.andro

2020-08-23 03:19:35 4857 2

原创 Android性能优化——App启动优化

App启动速度是我们App的第一个体验感。在日常的Android开发或者维护当中,我们肯定少不了App启动优化。下面就来分享一个我了解到的App启动优化的方向。App启动分类App startup time冷启动耗时最多,衡量标准* Click Event->IPC->Process.start->Activity Thread->bindApplicati...

2020-03-27 17:03:34 484

原创 Android开发——you must set design_width_in_dp in your AndroidManifest file

在开发Android的App的时候,我们肯定要适配各种屏幕。我选择使用今日头条适配方案,但是调试的时候,我遇到了java.lang.IllegalArgumentException: you must set design_width_in_dp in your AndroidManifest file错误。从异常的信息来看是我在AndroidManifest中配置少了东西,解决办法是: &l...

2020-03-27 16:56:49 5383 1

原创 Android开发——强制取消Toast

在日常的Android开发当中,我肯定少不了Toast提示用户。我维护一个运营了上线6年的项目的时候,我们网络请求的异常状态窗口要Dialog显示,但是之前的前辈把Toast写网络请求的底层了,如果我们要改动底层网络请求框架代价太大了。我就想着能不能在直接关闭Tosat,看Toast源码的时候,我发现了cancel()方法。关闭Toast的代码在项目的ToastUtil类中加入下面方法。pu...

2020-03-27 16:55:20 2453

原创 Android开发——RelativeLayout.LayoutParams的使用

前言在日常的Android开发当中,我们少不了需要动态改变控件在RelativeLayout界面的位置。那么我们就需要使用到RelativeLayout.LayoutParams。RelativeLayout.LayoutParamsRelativeLayout.LayoutParams是一个RelativeLayout的布局参数,我们改变控件的就需要使用到。初始化// 包裹内容Rel...

2020-03-01 17:49:18 6759

原创 Android性能优化——App性能优化解决方案的演进

前言在性能优化的学习当中,我知道了性能优化也是分好几个阶段的,分别是项目初期、项目壮大期、项目成熟期。不同的阶段我们有不同的性能优化要求,下面分享一下我的笔记。项目初期只关心崩溃率、不采集性能数据;没有性能检测方案、优化方案;没有排查问题手段;项目壮大期指标采集,不够全面深入;接入成熟的APM,排查手段单一;线下检测、优化,方案不成型;项目成熟期重点关注性能问题,数...

2020-02-29 01:11:48 441

原创 Android性能优化——性能优化的难题

前言在日常的Android开发当中,性能优化是我们Android开发必不可少的话题。那么有什么样的难题呢?结合网上的学习资料以及实际工作经验,总结如下。性能表现差App启动慢、卡顿、丢帧;内存占用高、抖动频繁;耗电、网络请求慢;崩溃率、异常率高;线上问题无从查找1.如何保证异常感知灵敏度,我们可以通过一些第三方SDK实现异常统计;2.如何复原“案发”现场(就是我们常说复现bu...

2020-02-29 00:45:34 413

原创 Android开发——自定义Dialog遇到setCanceledOnTouchOutside和setCancelable无效

前言最近在维护一个项目,根据产品需求去改变自定义的Dialog的UI。我很快就修改好了,但是我遇到setCanceledOnTouchOutside(true)和setCancelable(true)出现无效的情况。setCanceledOnTouchOutside方法作用点击对话框外部区域是否允许对话框消失或者说点击屏幕或物理返回键,false不消失,true消失。setCancelab...

2020-02-28 13:52:55 3276

原创 AS ——调出快捷键,快速try catch包括代码块

前言在使用Andorid studio开发的时候,有些快捷键能够节约我们的写代码的时间。调出try catch的快捷键选中要包裹的代码块,然后按下Ctrl+Alt+T,就可以调出下面的界面了,非常的便捷。...

2020-01-31 21:01:25 1080

原创 Android&Kotlin——EditText禁止输入空格

前言在日常的开发当中,我们难免要使用EditText控件,那么我们怎么处理让用户不在EditText中输入空格呢?下面直接上代码Kotlin示例代码mEtName?.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(p0: Editable?) { ...

2020-01-19 16:25:49 865

原创 Android&Kotlin——EditText遇到类型不匹配错误

前言最近一直使用Kotlin开发Android应用,今天刚好遇到一个关于EditText的错误,记录一下。报错详情Type mismatch: inferred type is String! but Editable! was expected,大意是类型不匹配:推断的类型是字符串!但可编辑!在预料之中。报错代码如下:editText?.text = "测试"修复报错代码:edit...

2020-01-15 19:50:35 3004 1

原创 AS——打开项目遇到Your project path contains non-ASCII characters

记录一次Android Studio的导入报错,最近帮朋友搞一个项目,我把压缩包名称弄成了中文,他在解压直接在那个文件夹打开了遇到编译器提示:Error:(1, 0) Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please...

2019-12-31 10:50:17 821 2

原创 AS——设置默认不打开上一次项目

在日常的开发当中,我们可能不喜欢Android Studio打开上一次的项目。下面分享一下有关的设置方法:File->Setting->Appearance&Behavior->System Settings,会出现下面界面我们把Reopen last project on startup选项去掉勾选,然后点击OK,最后重启AS就可以了。希望对Android开发的小伙...

2019-12-28 02:09:20 1154

原创 Android开发笔记——使用aar包的快捷方式

以前的aar使用方式android{ repositories { flatDir { dirs 'libs' } }}dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation (name:...

2019-12-11 14:50:46 188

原创 Python笔记——字典

创建字典>>> names={'Tom':'Tom is very good.','Jack':'Jack is very tall.'}>>> names{'Tom': 'Tom is very good.', 'Jack': 'Jack is very tall.'}>>> 字典查询>>> print(nam...

2019-11-30 10:21:57 347

原创 Python笔记——集合和列表

创建列表>>> place = ['Beijing','Shanghai','Hangzhou','henan','guangdong','Beijing','Hangzhou']列表去重unique_place = set(place)去重打印结果>>> print(unique_place){'Shanghai', 'guangdong', ...

2019-11-29 12:01:57 233

原创 Android&Kotlin笔记——Kotlin实现观察者模式的小案例

前言在日常的开发当中,我们肯定会遇到要使用观察者模式的场景。下面分享一下利用Kotlin实现Android的交互代码。源码1.创建两个接口/** * 类说明:观察者接口 * * @author 裕博 */interface ObserverListener { /** * 刷新操作 * @param count 传输的内容 */ fu...

2019-11-28 12:40:09 1164

原创 windows开发笔记——VS 2019遇到windows SDK找不到

遇到的错误遇到的错误C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows SDK version 10.0.14393.0 was n...

2019-11-08 21:19:34 16775 2

原创 Python笔记——实用列表函数

定义一个列表>>> stock_price = [1,4,6,5,3,7,4,8]获取列表长度>>> len(stock_price)8获取列表最大的元素>>> max(stock_price)8获取列表最小的元素>>> min(stock_price)1列表进行排序(默认从小到大)>&g...

2019-10-24 22:04:36 164

原创 Python笔记——列表

列表索引Python中列表是list,我们可以通过列表的索引获取相应的元素。>>> list_test = ['Hello',1,2,3,4.0,5.0,6.0,True,False]>>> list_test[1]1>>> list_test[0]'Hello'>>> 列表切片以上面的list_test列...

2019-10-24 22:03:06 192

原创 Python笔记——字符串

Python简单的字符串Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license()" for more information.>>> 'I am le...

2019-10-24 22:01:04 312

原创 Python笔记——整数和浮点数

判断整数和浮点数废话不多说,直接上代码,在IDLE中运行可以得到同样的效果,有兴趣的小伙伴可以试一下。Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license()" for...

2019-10-20 18:52:15 503

原创 Python笔记——PyCharm下载与安装

在前面说到怎么安装Python开发环境,那么这里就介绍Python开发工具PyCharm的安装。下载地址网址是https://www.jetbrains.com/pycharm/安装步骤1.选择安装路径2.选择需要安装的配置3.选择是否创建桌面快捷方式4.选择安装方式,默认选择之前没有配置过的安装5.选择使用pyCharm的主题6.是否要安装编译器推荐的插件7.安...

2019-10-20 18:49:28 1030

原创 Android面试——2019面试心得(已获得offer)

最近出去找工作了,分享一下我在面试过程中遇到的问题,希望对Android找工作的小伙伴有帮助。1.谈谈Android事件分发。Android事件分发顺序是Activity->ViewGroup->View,都是在dispatchTouchEvent()方法开始调用。2.如何设计一个图片加载库,讲一下思路选用Glide图片加载库,使用单例模式,让应用层那边可以链式调用图片加载库,...

2019-10-20 14:17:53 1493

原创 Python笔记——Python环境配置

在学习Python开发的时候,我们第一步一定是要配置Python开发环境。我们应该怎么安装Python开发环境呢?下面来分享一下我的安装心得。下载地址下载地址:https://www.python.org/打开上面的网址,选中Downloads就会显示python最新版,然后点击下载就可以了。安装步骤1.点开下载完成的文件Instanll Now表示是默认安装。Customiz...

2019-10-01 17:57:32 487

原创 maven笔记——在项目中引入maven私服

前面的博客说到maven仓库以及maven仓库的创建,下面介绍在Android Studio中引入仓库。在项目build.gradle当中引入下面代码buildscript{ repositories{ maven { // 私服仓库的地址 url 'http://localhost:8081/repository/imo...

2019-10-01 16:11:48 432

原创 maven笔记——windows环境maven私服搭建

下载nexus 3.x下载地址https://help.sonatype.com/repomanager3/download本人使用的3.18.1-01版本。安装nexus 3.x在上面的下载地址文件,然后解压到指定的文件夹当中。出现如下图的情况启动nexus 3.x我们找到nexus.exe点击启动,你会发现启动不了。正确的启动方式应该是使用cmd命令行启动。找到nexus 3....

2019-10-01 15:51:06 274

原创 maven笔记——maven仓库以及maven私服介绍

最近在学习的时候,发现我们可以用Android Studio搭建maven仓库,分享一下我学习到的maven有关的知识。maven仓库示意图图中我们可以看到1.中央仓库分为mavenCenter和jCenter,部署在公网上面的;2.私服是部署在局域网的,公司开发者在同一个局域网下面调用;3.其它公共仓库,个人开发者搭建maven仓库,部署在公网上面供其他开发者调用。maven私服的...

2019-10-01 15:22:56 226

ViewPager实现无限轮播+item点击事件

这个Demo是利用ViewPager实现无限轮播,多个item同时显示。添加判断每一个item的点击事件,希望对大家的学习和开发有帮助。

2018-01-20

64位HiJosn

这是一个解析接口返回Json的数据的工具,希望对开发请求接口返回数据的人有用。

2017-11-18

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

TA关注的人

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