自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 神奇的约束布局ConstraintLayout

我们都知道android studio创建布局默认根布局都是ConstraintLayout布局,那么这个布局到底是什么?具体有哪些不同之处? 写在前面:我在博客上面看到有位大佬写了一篇关于利用Constraintlayout实现圆形菜单的文章,觉得很有意思于是乎我就结合kt自己操作了一番,发现ConstraintLayout约束布局确实强大,好了废话不多说直接上代码了 ...

2018-08-30 11:26:44 657

原创 BaseRecyclerViewAdapterHelper使用——RecyclerView万能适配器

前言 主要声明三点 第一: 关于本文的BaseRecyclerViewAdapterHelper用法,自然是转载的官方原文。或许有的人会很疑惑原文写的那么清除那么完善,为什么我还要写一篇几乎一模一样的?是为了蹭热度让更多的人关注?有更多的点击量?当然不是,我对这么虚伪的东西是非常不齿的。那么自然我有我的原因: 1、我自己其实是个小白,刚入这行不久,由于接触这行时间也不长,加...

2018-08-28 17:10:49 1774

原创 android 中提示非法字符错误:'\ufeff\',错误需要class,interface,或enum。

今天在项目中遇到这个一个问题,当我运行程序的时候,突然编译错误,提示我"非法字符错误:'\ufeff\',错误需要class,interface,或enum"。于是乎我看了下我的类,没用爆红,也没有什么错误,然后我rebuild,clean,重启,转UTF-8编码都试了,还是编译不通过,最后我想了最简单的办法就是,先复制当前类的代码,然后删除类,重新创建类名相同的,最后复制代码,果然编译通过了。...

2018-07-20 17:58:38 338

原创 android_mvp设计模式详解

Mvp定义它是一种由MVC演变而来的设计模式,其中M-Model,V-View,P-Presenter.M层主要负责网络请求,数据处理,V层就是我们的视图层了(activity,fragment等),P层负责逻辑,控制着M层.使M与V层完全解耦.Mvp的作用是什么呐?当Mvp才出来的时候,我就去网上找了很多例子看了下,结果是一脸懵逼,太多的类与接口了,于是我就放弃了这种设计模式,然而当...

2018-03-15 15:29:17 324

原创 android开发常用知识点详解

1.单列模式:我想很多开发者都知道单列模式是一种设计模式,而单列模式的作用是什么呐?很显然对于项目中我们经常使用的对象利用单列模式创建出来保证实例化一次,这样可以减少内存消耗,常见的使用场景有,数据库创建.网络请求.文件流等.那么什么是单列模式呐?单列模式有哪几种呐? (1)首先我们常用的单列模式有三种,懒汉式,饿汉式,双重锁式 /简单懒汉式 public clas...

2018-03-03 11:44:06 483

原创 android_自定义PickerView实现滚动选择器的效果

今天在做项目时遇到一个对话框弹出滚动选择器的效果,对于还是一个菜鸟的我,想了很久,于是决定用自定义PickerView来完成,话不多说直接上代码。package com.feitong.orderMyView;import java.util.ArrayList;import java.util.List;import java.util.Timer;import java.util....

2016-09-13 16:17:36 1685

原创 记一篇工作中遇到的问题及解决问题的经验感受.

处理问题,排查问题

2023-05-31 14:55:50 809

原创 (约束布局)ConstraintLayout的辅助控件

constraintlayout布局扩展

2022-11-29 15:39:37 1451

原创 Android使用Eventbus 3+意想不到的坑(全局监听事件并弹框)

android Eventbus全局监听弹框问题

2022-01-13 11:22:32 2345

原创 【约束布局】ConstraintLayout 组件可见性 View.GONE 处理 与 Margin 属性

很久没写文章了,但是针对今天这篇文章还是值得记录下,供大家参考学习,目前布局中用ConstraintLayout(简称cons)应该很常见了,至于为什么要用这个布局,我想大家用过的都知道cons没有出现之前稍微复杂点的界面就各种嵌套,对于维护,修改也不是很方便。cons它作用就是控件与控件直接约束,不需要额外的嵌套。好了说下今天的正题:1.首先了解下cons中的Margin属性:cons中用Margin属性必须有个条件就是约束,比如你要设置marginStart=15dp.那么你必须有个横向约束,要

2021-12-30 14:15:32 2416

原创 android中使用@IntDef @StringDef代替ENUM

在没有@IntDef和@StringDef之前,对于一些常量值的维护和使用是一个困扰,到底是用enum还是静态常量呐。用静态常量只能是固定常量值,对于需要需一个范围值来说不适合,但是用enum对于内存消耗又是一个问题:Android官方文档中也有说明,enum中的每一个值其实都是一个Object对象,每声明一个值就会创建一部分的内存以使它能够被引用到这个对象,相比于静态常量,enum会花费近2倍的内存空间。google也考虑到这点了,因此推荐大家使用@IntDef和@StringDef来代替enum问题

2021-07-28 14:55:17 258

原创 记一篇/system/lib/libart.so问题

1.最近频繁出现运行项目后提示/system/lib/libart.so问题然后直接闪退,再次运行的时候又恢复正常,这种情况没什么好说的,一般打包后不会出现这种问题2.在项目运行一段时间后闪退然后没有日志,在bugly上崩溃日志为/system/lib/libart.so,这时候卸载app重新运行即可...

2021-04-08 10:40:45 3238 2

原创 android 更新安装apk出错

今天就重点说下前两天我遇到的问题吧,还是说下问题的背景:测试机(android9.0)一直运行本地代码测试的,自己手机(android10)是安装的线上的版本,未更新版本之前假如版本是1.0.0,打包新版本1.0.1上线,问题来了,测试机更新安装没问题,自己手机下载完成后安装报错重点分析:既然测试机能更新安装,那么权限,以及适配应该都是有写的,那么为什么报错提示代码与配置文件不一致呐?我可以很负责人的告诉你问他就出现在这里面参数与manifest定义的不一致导致的,但是为什么测试能更新安装,自己手机不行

2021-03-31 11:19:26 632

原创                  记一篇Android混淆的坑

记一篇Android混淆的坑目前大多数app打包都使用了代码混淆,而至于为什么要使用代码混淆以及混淆的优势是什么这篇文章我就不说明了,今天主要记录下使用混淆后出现的问题。1先说下背景吧,之前项目突然编译很慢很慢,甚至一个小时都编译不过,也不报错,当时想了尝试了很多种方式(没有翻墙)于是就把Gradle...

2021-03-20 19:25:56 526

转载 彻底解析Android缓存机制——LruCache

关于Android的三级缓存,其中主要的就是内存缓存和硬盘缓存。这两种缓存机制的实现都应用到了LruCache算法,今天我们就从使用到源码解析,来彻底理解Android中的缓存机制。一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。因此LRU(Least .

2020-10-30 08:52:39 1906

原创 android studio 不显示build文件问题

as目录下如果没有build文件首先确保项目编译了,或者说运行过app。然后再进行以下操作尝试:1.确保打开show exclued files2.如果第一种方式还是不行,估计你的as版本4.1以上了,并且配置了svn忽略文件看到这里你可能想到了没错就是配置这个build直接把目录里面build文件隐藏了。你可以尝试去掉这里的build....

2020-10-16 14:57:46 10324 3

原创 as4.1

10月的第一篇博客来的有点晚哈,也有一段时间没写了,不是没想过写,而且不知道写什么,写一篇博客考虑的因素不仅仅是素材还要考虑时间和文章的质量,这是对自己对读者的尊重。说下今天文章的主题吧,as4.1出来也有一段时间了,之前一直没更新,也不是说更新有多麻烦,只是有时候不敢轻易的更新。AS4.1:昨天简单了解了下4.1新版本,发现改变还是比较大的1.布局视图改变2.新增database数据库查询修改工具3.ignored files不见了一视图改变这个没什么说的,大家应该点几下应该都

2020-10-14 09:28:40 888 5

原创 记一篇Bugly的集成以及所遇到的问题解决办法

从事android开发到现在集成的第三方sdk不少,如果让我说一个印象最深的就非Bugly不可,自己填了不少坑,也踩了不少坑.好了过多的埋怨就不说了,言归正题,如果你在集成bugly遇到问题了,那么请仔细阅读文章内容,有可能会帮助你解决问题。Bugly优势支持so类替换 支持资源文件替换 支持新增activity 支持加固 成功率高 上报异常,崩溃信息Bugly集成步骤 前言:目前Bugly热更新技术 之所以受广大开发者喜好第一就是上面说到的优势,第二就是他集成步骤比较简...

2020-07-31 17:50:41 2940

原创 Unknown host ‘maven.aliyun.com‘. You may need to adjust the proxy settings in Gradle.

今天打release包的时候提示Unknown host 'maven.aliyun.com'. You may need to adjust the proxy settings in Gradle。看意思是需要设置阿里的代理,其实没必要先看防火墙是不是打开了。没有就打开后重试

2020-07-07 15:06:36 2409

转载 让你彻底掌握RecyclerView的缓存机制

最近在网上看到一篇关于listview,recyclerview缓存机制的讲解,感觉写得不错,通俗易懂就转发参考前言RecyclerView这个控件几乎所有的Android开发者都使用过(甚至不用加几乎),它是真的很好用,完美取代了ListView和GridView,而RecyclerView之所以好用,得益于它优秀的缓存机制。关于RecyclerView缓存机制,更是需要我们开发者来掌握的。本文就将先从整体流程看RecyclerView的缓存,再带你从源码角度分析,跳过读源码的坑,最后用一个简单的

2020-06-24 08:54:11 711

原创 Arouter路由之拦截器(重点)

前言:路由可以说是模块化开发必备技能了,它可以很方便实现模块之间页面跳转,传参等等操作,而且管理起来也方便,在我们实际开发中页面直接跳转可能不仅仅 从A跳转到B那么简单,比如我从A页面跳转到B页面需要判断用户是否登录了,如果没有登录就跳转到登录页面.那么此时路由的拦截就发挥作用了,在此之前我们可能都是在每个页面的setContentView之前进行判断,这样代码重复量以及可读性,维护性都不强。今天就简单给大家介绍下Arouter路由(阿里路由)1.Arouter路由集成(kt篇,如果是java开发请自行

2020-06-17 10:39:21 4462

原创 记一篇android加载so文件问题

前言:在项目中我们不免很多时候需要集成第三方SDK,比如:环信,友盟,七牛云等等,一般来说集成以及初始化SDK按照第三方SDK官方文档来基本上就没什么问题。最近在项目中加载so文件的时候遇到一些问题,在此记录下来希望可以帮助到大家. so文件 如果说对so文件分类的话大致就64和32位so文件了,在android的libs或者jnilibs目录下你可能会发现这几种存放so文件的目录。what?这么多目录到底加载哪个目录下的so文件呐?骚年别急嘛。老弟就给你举个列子.android资源文件加载:

2020-06-12 14:02:16 978

原创 从小白的角度浅谈Hbuilder项目引入Android studio,实现混合开发

前言:最近公司要在H5项目中调用七牛云SDK,但是根据H5项目人员了解到好像用H5来做视频聊天不是很好友,于是经理决定在原生上面去实现视频聊天这块功能。说实话之前一直没接触过混合开发,在此之前在网上查阅了一些资料,看了下大致流程及H5与原生交互。总体来说难度不是很大,当然对于我这种第一次接触的小白也是一种挑战,于是乎在这里记录下大致流程:1.H5打包资源文件在H5项目中找到manifest.json配置文件,在对应的基础配置里面有个AppID,这个Id非常重要。后面引入到android stu...

2020-06-01 13:45:24 4227 5

原创 谨windowIsTranslucent慎使用

在写项目的时候启动app,白屏厉害。然后就在主题中加了android:windowIsTranslucent透明,这样并不能根本上解决白屏问题,加了之后忘记取消了,发现该走onRestart的不走了,弹出popu页面重叠各种稀奇古怪的问题。找了很久都没找到问题,后面一个群友一语点破取消了这个属性后,问题全部解决。总结:白屏并不是改成透明就能解决的,我们需要从app启动优化入手。activity里面的style千万别轻易加android:windowIsTranslucent属性。...

2020-05-21 14:46:21 494

原创 android谈一谈适配器(BaseMultiItemQuickAdapter)

适配器可以说几乎每个页面都会用到,作为开发3年以上的我,自认为适配器adapter这块踩坑踩得差不多了。在昨天用到BaseMultiItemQuickAdapter实现多级列表的时候深深给我上了一课,我先简单阐述下我遇到的坑,同时也说下我的解决办法:1.多级列表实体类,适配器,item布局都可以参考下官方demo2.假如我现在有两个itemtype,第一个itemtype有个选择框并且所有...

2020-04-30 10:00:20 3912

原创 android 集成微信sdk注意事项,看完这篇不再为微信支付各种问题困扰

最近在项目中集成微信支付sdk的时候突然出现了一些问题,在网上查询了很多资料在此总结了几点,希望可以帮助到大家.1.首先在微信开放者平台注册,申请 这一步是你集成微信sdk的必要途径,不管你的appid是从后台获取还是申请完后写死在app项目里面的,都要在微信开放者平台申请获取appid,申请appid两个地方需要注意:1包名一定要是你applicationid对应的包名,2.签名一定...

2020-04-26 09:19:13 870

原创 记一波as3.6的坑

我as是设置了有检测到正式版本就提示更新,as3.6出来了有一段时间了,之前每次提示我都是直接忽略,最近部门经理结合我接收的项目的意见以及项目架构确实太陈旧了,决定叫我重构一波。我想既然重构就先更新下as。呵呵没想到这一更新搞了我两天时间。最后投降了还原版本老老实实用3.5. 1.更新到as3.6之后,每次修改gradle相关文件点击sync都要下载相关依赖库的pom文件,而且比较慢。...

2020-03-06 14:21:09 1747 8

原创 android 记录总结安装Apk问题

android手机安装第三方应用程序失败相信大多数都遇到过,其余我就不多说直接进入正题,我总结以下几种情况:1.手机版本与需安装的app不兼容(比如你的app最低要求android6.0,安装手机至少5.0这种情况肯定是安装不了的)解决方案:减低app版本要求2.这种情况与1有点类似,需安装的app没有适配到手机版本(比如手机版本android10.0,app适配不全导致安装失败)...

2020-03-04 11:24:30 4951 1

原创 android 混淆问题

2020第一篇博客来的有点迟,相信大家对近期疫情事件都有所耳闻,并且都有所波动,跳槽的不敢轻举妄动了,复工迟迟不能往返,这对互联网行业也是一大打击,不少公司选择在家远程办公,而我亦是如此。好了言归正题。今天我就简单说下我在家办公公司临时安排的紧急任务。我所遇到的坑给大家分享下。我们都知道android打包有正式版本与debug测试版本,而且都可以配置混淆,那么为什么要配置混淆,混淆要注意哪几点...

2020-03-02 16:37:56 344

原创 RxHttp 让你眼前一亮的Http请求框架

1前言RxHttp在今年4月份一经推出,就受到了广大Android 开发者的喜爱,截止本文发表在github上已有800+star,为此,我自己也建个RxHttp&RxLife 的群(群号:290611780)目前群里也有将近120号人,里面有不少小伙伴提了很多有价值的创意,才使得RxHttp一直坚持走到了现在,在此,感谢大家的喜爱。这期间,一...

2020-01-09 08:45:32 1640

转载 ViewPager2 正式版本发布,学不动也要学!

作者:一包纯牛奶链接:https://juejin.im/post/5df4aabe6fb9a0161104c8eb本文由作者授权发布。0概述就在上个月20号(2019年11月20号),期待已久的ViewPager2 正式版终于发布了!不知道你是否已经蠢蠢欲动着手用ViewPager2去改造你项目的ViewPager了?什么?你还不知道Vie...

2019-12-25 08:56:49 527

原创 flutter中真机调试显示loading以及flutter doctor命令无效解决办法

本人也是最近才进入flutter的坑之中,在开发flutter的时候时不时遇到真机调试 idea显示loading,最可恶的是连续两天都这种情况,对于我来说我尝试了以下办法:1.杀死dart进程2.重启idea3.flutter doctor(此时我idea未关闭)4.创建新flutter项目5.重启电脑6.查看官方flutter sdk版本(是否是稳定最新版本)杀死...

2019-12-20 14:11:17 2027 2

原创 Android中compileSdkVersion、buildToolsVersion、minSdkVersion和targetSdkVersion的含义作用

compileSdkVersion和minSdkVersion还比较通俗易懂,compileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK版本去编译你的项目,minSdkVersion表示当前项目支持的最低安卓系统版本,buildToolsVersion则是指构建工具的SDK版本,也就是AndroidStudio中设置的AndroidSDK版本,bu...

2019-12-18 16:29:37 3272

原创 Gradle配置lintOptions

android {lintOptions {// true--关闭lint报告的分析进度quiet true// true--错误发生后停止gradle构建abortOnError false// true--只报告errorignoreWarnings true// true--忽略有错误的文件的全/绝对路径(默认是true)//absolutePaths t...

2019-12-04 13:43:29 220

原创 android app开发的一些安全及漏洞问题

最近公司的app通过第三方安全检测公司进行了一次安全检测,当然ios,android都有,对于检测出来的漏洞及安全问题,我把android与ios对比了下简直不忍直视,难怪ios上线各种检测,不过话说回来我觉得android系统本来就存在一些漏洞,今天的主题就是关于漏洞及处理方案:1.漏洞分类 通常漏洞分为三类:低危漏洞,中危漏洞,高危漏洞. 低危漏洞就是对app用户数据及敏感信...

2019-12-03 16:51:54 1305 1

原创 使用Android studio找出项目无用资源文件

1,选择你的项目2,点击AS上的Analyze菜单按钮3,选择Run Inspection by Name4,会出现一个弹窗5,输入unused resources6,下面的输出栏会输出没有用的资源文件。7,点进去看看,然后删除无用的。8,再次打包,哇,你会发现你的apk小了很多...

2019-12-03 15:39:39 264

原创 Manifest merger failed with multiple errors, see logs问题处理

开发android的伙伴们或多或少应该都遇到过这种类似的编译问题,面对这种问题我们怎么找出错误呐,ok打开as切换到命令行,首先cd 命令进入我们的项目目录,然后再执行gradlew processDebugManifest --stacktrace可以看到这里提示我们具体错误了,在配置文件里面的3-6行;之前不知道这种办法的时候,面对这种错误真的是摸头不知脑。...

2019-11-28 13:23:55 156

原创 android studio 配置代码混淆规则

对于现在稍微大型点的app都有一定的安全措施。比如采用https替换http,请求参数签名,加密.敏感数据jni方式保存.另外就是防止反编码提高安全度减小apk大小的代码混淆,今天我主要讲解下android studio 代码混淆配置规则:1.对于每个独立的applicationid(理解不同app)要配置代码混淆都要在优先在其对应的app gradle下配置以下属性:minifyE...

2019-11-15 15:22:08 1383

原创 webview实现js与android交互

1.加载静态webview页面:这种情况一般项目中用的少,但是也不排除会用到,代码我就不上了,这个静态基本上都是几行死代码.2.android调用js中的函数:我们知道webview作为android与js交互的桥梁,那么我们在android中调用js应该怎么去调用呐?1.获取到html文本,这个可以放到本地资源文件,也可以在网页上加载。根据项目需求决定2.设置webview相...

2019-11-15 15:04:13 357

原创 Arouter模块化开发,cmake配置jni实现本地交互

最近在接手项目遇到模块化开发,jni,网络请求签名,加密,Https等等技术栈,在这里我就简单说下,Arouter阿里路由实现组件化开发,以及利用cmake配置实现jni本地交互.1.Arouter 对于大型点的项目来说,模块化开发是必不可少的,他不仅仅方便迭代,维护,也适合团队开发,各自开发各自对应的模块,那么模块化开发我们怎么实现模块之间跳转,数据交互呐?有的小伙伴在想直接start...

2019-11-12 16:36:00 333

空空如也

空空如也

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

TA关注的人

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