自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (7)
  • 收藏
  • 关注

原创 ViewBinding——Android之视图绑定

/原来的写法//使用ViewBinding的写法// 自定义view// 正常添加布局(亲测有效)// 方法二:// 针对根标签为merge。

2023-09-21 10:07:21 492

原创 Android Studio 创建项目不自动生成BuildConfig文件

今天在AS上新建项目发现找不到BuildConfig文件,怎么clear都不行。通过多方面查找发现原来gradle版本不同造成的,Gradle 8.0默认不生成 BuildConfig 文件。

2023-09-20 10:50:43 1143 4

原创 Android内存泄漏总结和性能优化技巧

对于许多开发者来说,安卓性能优化往往是一个比较棘手的问题。由于安卓设备的种类繁多,硬件配置各不相同,因此优化的方法和策略也各不相同。同时,安卓应用的开发周期较长,往往需要不断地迭代和更新,因此优化也需要不断地持续和优化。 学习安卓性能优化的知识和技巧,是每个安卓开发者必备的技能之一。通过掌握安卓性能优化的基本原理和方法,我们可以更加深入地了解安卓设备的工作机制,理解应用的性能瓶颈,从而采取有效的优化策略和措施,提高应用的性能和稳定性,提升用户的满意度和留存率。

2023-08-17 11:44:11 1021 3

转载 Android 13 媒体权限适配指南

Android 13 在最近也发布了正式版,此次版本中新增的隐私安全限制也终于能够解决众多应用长久以来的两个问题了。在很多 Android 应用中,都会通过内置一个图片选择器来向用户展示系统相册内的所有图片,常见于“上传用户头像、发送图片”等业务场景,这就需要通过获得 READ_EXTERNAL_STORAGE 权限来实现了。而这个权限也存在极大的隐私风险,应用也许会向用户说明该权限仅仅只会在选择图片时使用,但除了应用开发者外,谁又能确保应用不会依靠该权限在后台偷偷做些什么呢?而对于开发者来说也属于无奈

2023-08-17 11:00:24 2952

原创 Flutter 混合架构方案探索

在现有的原生 App 中引入 Flutter 来开发不是一件简单的事,需要解决混合模式下带来的种种问题,如路由栈管理、包体积和内存突增等;另外还有一种特殊的情况,一个最初就由 Flutter 来开发的 App 也有可能在后期混入原生 View 去开发。

2023-08-15 11:06:36 309

原创 使用 AndroidX 增强 WebView 的能力

从 Android 官方的角度,webkit可以推动 WebView 上游支持该 WebView API , 而这正是 AndroidX Webkit 的解决方案。Android 官方将定义的 WebView API 放置到 AndroidX Webkit 库,以支持频繁的更新,并在 WebView 上游增加“胶水层”与 AndroidX Webkit 进行衔接,这样在旧版的 Android 平台上,只要安装了拥有"胶水"层代码的 WebView ,也就拥有了新版平台的功能。

2023-08-11 16:24:05 1478

转载 Android颜色透明度(不透明度)对应的十六进制

Android颜色透明度黑色半透明: 80000000 //80表示透明度为50%,000000表示黑色。黑色70%透明度: B3000000 //4D表示透明度为70%,000000表示黑色。黑色不透明透明: FF000000 //FF表示不透明,000000表示黑色。下面是透明度,再加上平常写得颜色值就表示该颜色值多少透明度了。颜色值(#AARRGGBB)透明度百分比和十六进制对应关系。一、一张表格,基本都概括,方便查找和使用。透明度 十六进制。

2023-08-08 17:05:37 1227

原创 纯鸿蒙!华为HarmonyOS NEXT不再兼容安卓应用,无法安装Apk文件

华为HarmonyOS NEXT不再兼容安卓应用,无法安装Apk文件;HarmonyOS NEXT基于OpenHarmony开发,可以说是真正的鸿蒙OS,从数码博主“WHYLAB”上手体验来看,HarmonyOS NEXT不再兼容安卓应用,如果打开安卓APK文件,会提示“无法打开此文件”。余承东表示,HarmonyOS持续深耕软件根技术,通过具备天生流畅、极致能效、纯净安全三大特征的“鸿蒙内核”和能效比提升的“方舟图形引擎”,鸿蒙底座已经基本完善,有超过1亿行代码,2万多个API。

2023-08-08 16:50:42 5063

原创 Android沉浸式状态栏主题跟随状态栏背景颜色自动变化主题,状态栏主题跟随状态栏背景色自适应

Android沉浸式状态栏主题跟随状态栏背景颜色自动变化主题状态栏主题跟随状态栏背景色自适应Android系统提供了两种显示模式:明亮模式与暗黑模式整体偏亮,即背景亮色,文字等内容暗色。整体偏暗,即背景暗色,文字等内容亮色。

2023-08-04 16:06:52 504

转载 Android10填坑适配指南,实际经验代码,持续补充

Android10填坑适配指南,包含实际经验代码,绝不照搬翻译文档1.Region.Op相关异常:java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed当 targetSdkVersion >= Build.VERSION_CODES.P 时调用...

2020-01-21 14:28:31 837

原创 Jenkins自动化打包上传到Fir报Can not found mapping or dysm file in的解决方案

在踩了几个坑以后,Jenkins自动打包终于成功了。就想着自动上传到Fir,自动生成二维码,便于下载安装,在网上找到了一个Fir插件,安装成功以后再次打包发现报Can not found mapping or dysm file in,在网上查找原因发现是新版本Fir插件问题,新版插件的问题,本来是默认不用上传dysm file文件的,但是新版fir插件应该是默认了要上传,所以导致了找...

2019-10-11 15:03:42 603

原创 Jenkins实现自动打包时报unable to open png file,修改项目存放地址的方案

在实现Jenkins自动化打包过程中遇到了很多的坑,前几天刚准备用Jenkins实现自动打包时,发现控制台输出日志报unable to open png file。在网上百度很多都说是因为图片文件路径太长了,windows对文件路劲有长度限制,如果图片的路径长度超过了这个限制就会读取不到文件,因此不能将项目放的太深。为什么项目会放的那么深呢,其根本原因还是我们在下载安装Jenkins时,项目存...

2019-10-11 11:44:43 1867

原创 Android实现倒计时跳转和延时操作

App启动页倒计时3秒跳转到App的首页,这种操作在很多App中都很常见。如果需要做一个延时操作呢?写一个子线程停留3秒然后执行操作,这样的话需要特别的注意的是UI操作必须放在主线程里,那么还需要转化成主线程?NO,使用Handler轻松实现倒计时和延时操作。一.启动页倒计时详细操作private int duration = 6;private Handler updateHandl...

2019-09-11 10:09:07 783

原创 jenkins安装出现该实例似乎已离线等报错和如何卸载干净Jenkins的解决方案

前段时间在准备使用Jenkins来实现Android自动化打包,但是在安装Jenkins的过程中出现了问题,在安装过程中出现 Jenkins实例似乎已离线,需要我配置代理,还有一个离线安装的文档,可是根据文档并没有明确说明怎么配置,然后我就跳过了这一步,Jenkins正常启动了,但是当我新建一个项目,配置git远程地址发现,根本就没有git这一个选择项,什么都配置不了,我估摸着应该是我没有安装插件...

2019-08-13 11:14:20 2341 1

原创 使用 Jenkins 实现Android自动化打包和踩坑经历

每当有项目做的过程中,测试需要做单元测试,每次手动的切换生产和测试环境,切换各种推送、统计和第三方账号相当的麻烦,同时还需要暂存代码,切换分支深的太过繁琐。此时如果将项目配置自动化打包了,那么就可以将这些问题解决了。我们来看一下Jenkins的配置流程。1.下载 JenkinsJenkins 官网下载地址:https://jenkins.io/download/,选择你电脑对应你的操作系统...

2019-08-05 13:42:47 2130

原创 友盟、bugly、网易云捕和crashlytics移动平台crash收集对比

移动互联网时代,由于 Android 设备的碎片化,客服人员每天要接到很多用户反馈在各种不同机型上的崩溃问题,又没有办法提供具体的 Crash 日志给开发人员。测试人员每天需要对用户的反馈进行 Bug 复现,然后抓取log 日志,人力成本,手机终端成本非常高,造成很多资源浪费。所以急需一种解决方案来解决这种问题。为了更好的比较这些三方平台,首先我们得知道线上比较热门的APP使用质量跟踪系统的的...

2019-07-31 19:38:52 3675

原创 Bugly接入、实现线上异常上报并实时通过微信将异常信息发送给开发者

近期项目有一个需求就是统计App的异常信息,并且异常信息要实时的通知到开发者,方便开发者第一时间掌握线上异常,以及客户反馈的异常及时查找问题的所在,后续通过阿里云的HotFix进行线上及时修复。目前市面上使用较多的第三方移动平台质量跟踪主要有友盟、Bugly、网易云捕和crashlytics。其中前三个是国内异常统计的第三方,国内开发者使用较多的也是前三者,目前我个人使用过有友盟和Bugly,这两...

2019-07-31 15:35:14 2797

转载 Weex页面间的跳转及Android端多应用选择窗口的处理——Weex的学习之路(十一)

一、前言本文主要总结Weex的页面跳转方式,实现并封装Web、Android和iOS三端跳转的方法。二、页面跳转Weex的页面跳转,主要是通过使用 navigator 来实现,但是三端使用的过程中,因为url的规则其实并不统一,所以需要根据不同的平台,做不同的跳转处理。在浏览器里,我们可以通过前进或者回退按钮来切换页面,Android/iOS的 navigator 模块就是用来实现类似的...

2019-07-28 17:18:13 1485

原创 Android反编译流程和apk反编译重新打包签名

作为一名Android开发者,很多的时候需要去学习别人优秀的代码,原本在GitHub上就有很多开源的项目代码,但有的时候在使用软件时候遇到自己想要的功能时,想要学习实现的代码时,这时候就需要使用到反编译这项技术了。正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就...

2019-07-28 16:49:05 2619 1

原创 友盟推送和阿里云移动推送使用注意事项、不同点比较

友盟推送和阿里云移动推送,都属于阿里系的产品,在使用上很大一部分还是很相似的,阿里云将移动推送、移动热修复、移动测试、移动数据分析和移动用户反馈集成到了一块,所有的远程依赖也都是集成在一起了,然而友盟的数据统计、概况统计、分享和推送是分开的。整体上个人觉得阿里云的接入要比友盟明了简单。下面我们一起来看看阿里云移动推送和友盟推送的有哪些注意事项吧!一. 阿里云推送的注意事项1. appK...

2019-07-24 13:39:15 2457

原创 友盟推送(U-Push)集成、踩坑和解决与阿里云系列产品的依赖冲突

上一篇博客讲到接入阿里云移动推送,这一篇一起来看一下友盟的推送。友盟作为行业内较早做推送的第三方,在推送方面经验还是比较雄厚的,并且友盟对外宣称,友盟可以使用共享通道推送,也就是说,假如手机上装了别的应用也使用了友盟推送,当自己的App后台进程杀死的情况下,推送会利用别的app推送消息。我看了一下友盟的源码,代码里做了判断,当书籍上的app使用了淘宝的包名,或者淘宝和头条的域名,就可以使用共享渠道...

2019-07-23 19:12:20 5549 2

原创 阿里云移动推送的接入和踩坑

近期由于业务需求,要换掉以前的推送,首先选择了阿里云推送,官方介绍阿里移动推送(Alibaba Cloud Mobile Push)是基于大数据的移动智能推送服务,帮助App快速集成移动推送的功能,在实现高效、精确、实时的移动推送的同时,极大地降低了开发成本。让开发者最有效地与用户保持连接,从而提高用户活跃度、提高应用的留存率。那么接下来我们就一起看看是如何接入的。一. 在阿里云后台创建自己的...

2019-07-23 16:42:10 9870 13

原创 Weex布局Flex的使用——Weex的学习之路(十)

Flex是Flexible Box的缩写,意为弹性布局,用来为盒子模型提供最大的灵活性、任何一个容器都可以指定为Flex布局。本篇博客全面的讲解了Flex布局的属性,快速入门Flex布局,那么接下来我们谈谈CSS Flexbox弹性布局。首先要有个容器,并设置display:flex;display:-webkit-flex;该容器有以下六个属性:flex-direction (元素排列...

2019-07-05 17:40:55 1797 1

原创 安卓9.0适配方案和踩坑

年初的时候就已经适配了安卓9.0,但由于业务需求一直没有使用上,前段时间发布了,结果有用户反馈在安卓9.0的手机上更新下载App发生了闪退。这个时候发现9.0对权限、加密和Apache HTTP client发生了相关变化。一. 首先我遇到的第一个错误是:Caused by: java.lang.ClassNotFoundException: Didn't find class "org.ap...

2019-06-27 17:28:22 1460

原创 Weex组件<waterfall>瀑布流和GridView效果的使用——Weex的学习之路(九)

最近项目有点忙,weex学习更新稍微慢了些。近期给自己列了一个学习计划表,想用weex做一个App,目前觉得列表比较好做,同时weex原生组件使用起来都很方便,就是一些自定义的组件在使用的时候,在引用上有一些坑需要注意。前几天我准备使用<waterfall>在页面上做一个快捷入口,开始以为<waterfall>只能做瀑布流,看来我是小看他的功能了,其实<water...

2019-06-21 17:53:41 1066 1

原创 真正程序员的工资是怎样的?

近期听到看到很多关于程序员工资的议论,说到程序员的工资高到吓人,月薪三五万那都是普通。针对这样的传闻,我只是摇头轻笑。2月2日,记者从国家统计局杭州调查队获悉,2018年杭州全体居民人均可支配收入54348元,比上年增加4516元,扣除价格上涨因素,实际增长6.6%,增幅比上年同期高1.1个百分点。这是杭州全体居民人均可支配收入首度迈入5万元大关。其中,城镇常住居民人均可支配收入为61172元,首...

2019-06-18 13:38:59 569

原创 随机生成6位数、随机生成不重复的6位数

随机生成一个几位数,这种比较常见的操作今天我们来看一下,例如随机生成6位数,直接来简单明了的吧:int num = (int) ((Math.random() * 9 + 1) * 100000);最终num就是需要的6位随机数。同理要是想得到随机的五位数和七位数呢?//随机的五位数int num = (int) ((Math.random() * 9 + 1) * 10...

2019-06-14 15:08:48 34977 2

原创 Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误

最近公司项目需求接入即时通讯功能,现在第三方的即时通讯做的比较完善,接入也很方便。最近在调试语音的时候遇到了一个.so库加载失败的问题,在网上查看都是说由于原有项目的so库和新添加的model的so库数量不一致。具体报错如下:java.lang.UnsatisfiedLinkError: No implementation found for void com.moor.imkf.mp3...

2019-06-11 14:24:08 12288 6

原创 自定义Weex组件——Weex的学习之路(八)

在四月份和五月份的时候我用业余时间来学习weex,在这期间一直在看文档写demo,每一个组件都自己写demo运行一遍。我本人是做Android开发的,对JS,CSS和Html有一定的了解,所以学习weex不是很难。然后我把自己所学的主要经历和过程用博客记录下来,其目的是想巩固自己的学习知识,还有就是希望能给weex学习的小伙伴一点帮助。最近有一部分小伙伴私信我说,问我weex好学吗、weex学了之...

2019-06-04 16:49:13 1187 2

原创 Weex Studio解除ESLint格式警告——Weex的学习之路(七)

我们在初次使用Weex Studio的时候,编写代码保存后发现有很多文件格式的警告,甚至连编译都不行了,需要把多余的空格和不规范的格式都一一的改正过来,如果是这样的话,确实很不方便。在网上查了一下,原来是ESLint在搞鬼。首先解释一下ESLint,它是javascript代码检测工具,可以配置每次保存时格式化js。那么每个人写的代码不可能完全按照标准的格式,那么写完代码发现一堆的警告并且还影响编...

2019-06-03 11:48:25 746 2

原创 OkGo网络框架的封装和基本使用

OkGo是封装了okhttp的网络框架,可以与RxJava完美结合,比Retrofit更简单易用。支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持cookie自动管理,支持四种缓存模式缓存网络数据,支持301、302重定向,扩展了统一的上传管理和下载管理功能。今天自己新建了一个Demo,试了一...

2019-05-29 20:05:45 1159

原创 Weex页面的编写——Weex的学习之路(六)

通过前几博客我们把weex的内置组件都学习完了,组件的单独使用想必都可以了。那么,这次我们来做weex实际页面的编写,见证一下,一套代码在Android、Ios和H5上使用。在weex官网推荐我们使用Weex Studio作为编译器,其实这款编译器也不是新出来的,它就是vscode再包装了一下添加脚手架,实际使用和vscode是一样的,只是比vscode多了一个预览界面。接下来我们就进行代码的编写...

2019-05-29 14:24:27 915 2

原创 90后的头上少了头发,多了压力

“我已经不怎么笑了,内心也没有以前那么波动了,就像一潭死水,扔个石头都激不起水花。”,一个刚刚下班的网友这样形容工作后的自己。下了班回到家不就轻松了吗?不,其实只有加班后的回家路上,在地铁上那一个小时可以算得上轻松。虽然拥挤,可地铁上的通勤路,却是唯一能让人喘口气的地方。真正摧毁一个人的生活的,是“工作后压力”。一天最轻松的时候,是下班之后、到家之前职场压力不尽相同,却...

2019-05-24 22:51:40 184

原创 Android Studio中将一个项目转变成library(model)引入到另一个项目中使用

大家平时在做项目时,会经常应用library作为第三方依赖,那么如果公司中有多个app,其中有部分业务功能逻辑是相似并且可以复用的时候,我们货怎么办呢?简单粗暴的办法就是直接复制过来,但是这样做岂不是复用率不高,以后这部分代码要修改岂不是每个app都要修改。那么,把这部分代码作为library在项目中引用不就解决复用率的问题。下面就一块来学习一下如何将公共模块打包成library:1.提取...

2019-05-23 20:52:25 3894 4

原创 Weex内置组件的使用——Weex的学习之路(五)

这几天忙着做组件化了,博客晚了些更新,说到组件化,我近期也会用博客来介绍的。上一篇博客我们讲的是weex的内置组件,那么这篇博客我们学习最后四个组件,下篇博客我们就会讲到世界weex页面的编写了。这篇博客我们来学习<waterfall>、<video>、<web>和<richtext>。weex的组件真的是要好好学牢固的,很多人可能会觉得定义太多记不...

2019-05-22 20:15:40 1616

原创 Weex内置组件的使用——Weex的学习之路(四)

上一篇文章我们学习了<list>、<cell>、<loading>和<refresh>组件,这都都是在项目中常用的。那这篇文章我们一起来学习<recycle-list>、<scroller>、<slider>、<indicator>、<textarea>和<input>,大家可能...

2019-05-15 20:27:38 2039

原创 Weex内置组件的使用——Weex的学习之路(三)

上一篇文章我们看了<a>、<div>、<text>和<image>标签,这些都是在weex中常用到的标签,除了这些标签的基本使用,同时还需注意样式。对css样式还不是太熟悉的小伙伴要先看看flex。那么这节我们一块来学习<list>、<cell>、<loading>和<refresh>组件。不管是在...

2019-05-14 20:08:35 787

原创 关于Android 9.0 ClassNotFoundException: Didn't find class "org.apache.http.protocol.BasicHttpContext"

近期在项目中适配了Android9.0-P,但是在部分用户的手机上出现闪退的现象,通过捕获错误日志发现报的错如下:Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.protocol.BasicHttpContext" on path: DexPathList[[zip file "...

2019-05-10 20:07:39 2492 1

原创 Weex内置组件的使用——Weex的学习之路(二)

最近公司项目不是很忙,就和组内成员商量利用时间学学新技术,最终在Weex和Flutter做选择。Weex是由阿里的大牛们开发出来语言,Flutter是由Google公司开发的。各种网上查找得出的评论都是Flutter更有前景,但是最终我们还是敲定学Weex。为什么呢?是因为任性?我也不敢问,但是我敢说啊,哈哈哈。因为我们会JS,然而Flutter用的是Dart语言,我不会。下面我们来看看Wee...

2019-05-09 21:19:28 929

原创 Weex简介和环境的安装——Weex的学习之路(一)

Weex 致力于使开发者能基于通用跨平台的 Web 开发语言和开发经验,来构建 Android、iOS 和 Web 应用。简单来说,在集成了 WeexSDK 之后,你可以使用 JavaScript 语言和前端开发经验来开发移动应用。也就是说学习了Weex就可以生成三端的程序。Weex 渲染引擎与 DSL 语法层是分开的,Weex 并不强依赖任何特定的前端框架。目前 Vue.js 和 Rax 这...

2019-04-30 15:46:49 546

2022中高级Android面试必知百题.pdf

1.精简海量面试题,提取问答率高的前一百题 2.面试一百题宝典

2022-02-09

2022最新Android中高级面试题合集.pdf

1.最新整理Android面试题 2.涵盖Java基础,jvm,Android常见面试问答,Kotlin面试题

2022-02-09

Jenkins的新版本Fir插件

Jenlins自动化打包上传到Fir时,需要安装Fir插件,这个是Fir新版本的插件,安装新版本的Fir插件,在Jenkins上必须要上传dysm file文件,请开发者按需下载使用;同时我还有一个老版本的Fir插件。

2019-10-11

Retrofit2+Rxjava2网络请求异常统一封装处理

该工具类是对Retrofit2+Rxjava2网络请求异常统一封装处理,将onError(Throwable e)中得异常转化成具体的错误信息。除了提示用户以外,还方便开发者准确定位Bug的所在。

2019-04-15

Retrofit2+Rxjava2+Rxandroid+okhttp3+Lifecycle 的MVP网络框架,精简Google官方AAC框架

本框架使用Retrofit2+Rxjava2+Rxandroid+okhttp3+Lifecycle 的MVP网络框架,精简Google官方AAC(Android Architecture Components)框架,实现APP生命周期的管理

2019-04-12

OCR 自动识别身份证、银行卡号(包含识别哪个银行)和卡片文字

根据百度的自动识别身份证、银行卡号和卡片文字的demo

2018-03-19

listView的item局部刷新

listView的局部刷新demo

2017-04-12

空空如也

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

TA关注的人

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