![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 60
ZyClient
这个作者很懒,什么都没留下…
展开
-
(约束布局)ConstraintLayout的辅助控件
constraintlayout布局扩展原创 2022-11-29 15:39:37 · 1646 阅读 · 0 评论 -
Android使用Eventbus 3+意想不到的坑(全局监听事件并弹框)
android Eventbus全局监听弹框问题原创 2022-01-13 11:22:32 · 2432 阅读 · 0 评论 -
【约束布局】ConstraintLayout 组件可见性 View.GONE 处理 与 Margin 属性
很久没写文章了,但是针对今天这篇文章还是值得记录下,供大家参考学习,目前布局中用ConstraintLayout(简称cons)应该很常见了,至于为什么要用这个布局,我想大家用过的都知道cons没有出现之前稍微复杂点的界面就各种嵌套,对于维护,修改也不是很方便。cons它作用就是控件与控件直接约束,不需要额外的嵌套。好了说下今天的正题:1.首先了解下cons中的Margin属性:cons中用Margin属性必须有个条件就是约束,比如你要设置marginStart=15dp.那么你必须有个横向约束,要原创 2021-12-30 14:15:32 · 2584 阅读 · 0 评论 -
android中使用@IntDef @StringDef代替ENUM
在没有@IntDef和@StringDef之前,对于一些常量值的维护和使用是一个困扰,到底是用enum还是静态常量呐。用静态常量只能是固定常量值,对于需要需一个范围值来说不适合,但是用enum对于内存消耗又是一个问题:Android官方文档中也有说明,enum中的每一个值其实都是一个Object对象,每声明一个值就会创建一部分的内存以使它能够被引用到这个对象,相比于静态常量,enum会花费近2倍的内存空间。google也考虑到这点了,因此推荐大家使用@IntDef和@StringDef来代替enum问题原创 2021-07-28 14:55:17 · 284 阅读 · 0 评论 -
记一篇/system/lib/libart.so问题
1.最近频繁出现运行项目后提示/system/lib/libart.so问题然后直接闪退,再次运行的时候又恢复正常,这种情况没什么好说的,一般打包后不会出现这种问题2.在项目运行一段时间后闪退然后没有日志,在bugly上崩溃日志为/system/lib/libart.so,这时候卸载app重新运行即可...原创 2021-04-08 10:40:45 · 3410 阅读 · 2 评论 -
android 更新安装apk出错
今天就重点说下前两天我遇到的问题吧,还是说下问题的背景:测试机(android9.0)一直运行本地代码测试的,自己手机(android10)是安装的线上的版本,未更新版本之前假如版本是1.0.0,打包新版本1.0.1上线,问题来了,测试机更新安装没问题,自己手机下载完成后安装报错重点分析:既然测试机能更新安装,那么权限,以及适配应该都是有写的,那么为什么报错提示代码与配置文件不一致呐?我可以很负责人的告诉你问他就出现在这里面参数与manifest定义的不一致导致的,但是为什么测试能更新安装,自己手机不行原创 2021-03-31 11:19:26 · 701 阅读 · 0 评论 -
记一篇Android混淆的坑
记一篇Android混淆的坑目前大多数app打包都使用了代码混淆,而至于为什么要使用代码混淆以及混淆的优势是什么这篇文章我就不说明了,今天主要记录下使用混淆后出现的问题。1先说下背景吧,之前项目突然编译很慢很慢,甚至一个小时都编译不过,也不报错,当时想了尝试了很多种方式(没有翻墙)于是就把Gradle...原创 2021-03-20 19:25:56 · 552 阅读 · 0 评论 -
as4.1
10月的第一篇博客来的有点晚哈,也有一段时间没写了,不是没想过写,而且不知道写什么,写一篇博客考虑的因素不仅仅是素材还要考虑时间和文章的质量,这是对自己对读者的尊重。说下今天文章的主题吧,as4.1出来也有一段时间了,之前一直没更新,也不是说更新有多麻烦,只是有时候不敢轻易的更新。AS4.1:昨天简单了解了下4.1新版本,发现改变还是比较大的1.布局视图改变2.新增database数据库查询修改工具3.ignored files不见了一视图改变这个没什么说的,大家应该点几下应该都原创 2020-10-14 09:28:40 · 951 阅读 · 5 评论 -
记一篇android加载so文件问题
前言:在项目中我们不免很多时候需要集成第三方SDK,比如:环信,友盟,七牛云等等,一般来说集成以及初始化SDK按照第三方SDK官方文档来基本上就没什么问题。最近在项目中加载so文件的时候遇到一些问题,在此记录下来希望可以帮助到大家. so文件 如果说对so文件分类的话大致就64和32位so文件了,在android的libs或者jnilibs目录下你可能会发现这几种存放so文件的目录。what?这么多目录到底加载哪个目录下的so文件呐?骚年别急嘛。老弟就给你举个列子.android资源文件加载:原创 2020-06-12 14:02:16 · 1030 阅读 · 0 评论 -
android 集成微信sdk注意事项,看完这篇不再为微信支付各种问题困扰
最近在项目中集成微信支付sdk的时候突然出现了一些问题,在网上查询了很多资料在此总结了几点,希望可以帮助到大家.1.首先在微信开放者平台注册,申请 这一步是你集成微信sdk的必要途径,不管你的appid是从后台获取还是申请完后写死在app项目里面的,都要在微信开放者平台申请获取appid,申请appid两个地方需要注意:1包名一定要是你applicationid对应的包名,2.签名一定...原创 2020-04-26 09:19:13 · 898 阅读 · 0 评论 -
记一波as3.6的坑
我as是设置了有检测到正式版本就提示更新,as3.6出来了有一段时间了,之前每次提示我都是直接忽略,最近部门经理结合我接收的项目的意见以及项目架构确实太陈旧了,决定叫我重构一波。我想既然重构就先更新下as。呵呵没想到这一更新搞了我两天时间。最后投降了还原版本老老实实用3.5. 1.更新到as3.6之后,每次修改gradle相关文件点击sync都要下载相关依赖库的pom文件,而且比较慢。...原创 2020-03-06 14:21:09 · 1783 阅读 · 8 评论 -
android 混淆问题
2020第一篇博客来的有点迟,相信大家对近期疫情事件都有所耳闻,并且都有所波动,跳槽的不敢轻举妄动了,复工迟迟不能往返,这对互联网行业也是一大打击,不少公司选择在家远程办公,而我亦是如此。好了言归正题。今天我就简单说下我在家办公公司临时安排的紧急任务。我所遇到的坑给大家分享下。我们都知道android打包有正式版本与debug测试版本,而且都可以配置混淆,那么为什么要配置混淆,混淆要注意哪几点...原创 2020-03-02 16:37:56 · 377 阅读 · 0 评论 -
RxHttp 让你眼前一亮的Http请求框架
1前言RxHttp在今年4月份一经推出,就受到了广大Android 开发者的喜爱,截止本文发表在github上已有800+star,为此,我自己也建个RxHttp&RxLife 的群(群号:290611780)目前群里也有将近120号人,里面有不少小伙伴提了很多有价值的创意,才使得RxHttp一直坚持走到了现在,在此,感谢大家的喜爱。这期间,一...原创 2020-01-09 08:45:32 · 1704 阅读 · 0 评论 -
Android 常见工具类封装
1,MD5工具类:public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', '...原创 2018-08-17 09:27:23 · 764 阅读 · 0 评论 -
[Android]今日头条的屏幕适配方案,简单又粗暴!
骚年你的屏幕适配方式该升级了!-今日头条适配方案JessYan鸿洋前天本文作者作者:JessYan链接:https://juejin.im/post/5b7a29736fb9a019d53e7ee2本文由作者授权发布。1前言这个月在 Android 技术圈中 屏幕适配 这个词曝光率挺高的,为什么这么说呢?因为这个月陆续有多个大佬发布了屏幕适...原创 2018-08-24 08:56:14 · 4603 阅读 · 0 评论 -
一款低成本的Android屏幕适配解决方案(今日头条屏幕适配方案终极版,一个极低成本的Android屏幕适配方案)。
欢迎各位android爱好者加群交流:290611780下载implementation' me.jessyan:autosize:0.9.5 '用法第1步(只需一步)在AndroidManifest中初始化,把设计图尺寸按照宽高的px写入,然后布局中控件大小直接按照ui设计px写入就可以实现屏幕适配了。< manifest > &l...原创 2018-09-17 09:12:44 · 1637 阅读 · 0 评论 -
rxjava+mvp模式实现app版本更新
相信大多数人都知道,要实现版本更新,首先要获取本地版本号,以及服务器apk的版本号,然后比较两者大小,如果服务器apk版本号大于本地版本,此时我们就需要app版本更新了,版本更新有很多种方法,有的直接开启一个dialog下载apk,有的开启service下载并跟踪进度,我个人比较喜欢开启service来下载apk,那么开启service跟踪下载进度,并安装apk我们要做些什么呐? (...原创 2018-10-19 11:12:25 · 562 阅读 · 0 评论 -
kotlin中引用run函数的坑
如果我们用kt开发的肯定都是直接引用控件id对控件进行赋值及操作,最近我在做项目的时候发现运行报null我很奇怪的看了下,居然是说控件不能为null,由于经常在kt中直接引用控件id,导致我从未想过去从控件方面找原因,加上我其他控件都是用得好好的,于是我就debug,log,查看各种地方都是没有问题的其中的date_text就是我的控件id,我Log,debug了dat...原创 2019-01-09 16:37:23 · 1648 阅读 · 1 评论 -
retrywhen实现重连(kotlin)
相信大多数人都在用rxjava+retrofit网络框架,在用着框架的时候我们不难发现,一些复杂,连续请求不再复杂,那么我今天提到的retrywhen操作符作用是什么呐? 在我们开发过程中肯定有网络请求断开,失败的情况,可是用户的网络立马又回复正常了,这时候我们突然给用户toast一个网络请求失败,很明显这种体验度不是很好.下面我就贴上我用retrywhen实现重连请求的代码:val ...原创 2019-02-14 09:35:02 · 2095 阅读 · 0 评论 -
关于Android Studio真机测试时找不到设备问题
目前遇到AS找不到设备的情况有三种。第一种:设备没有开启开发者模式。关于开启开发者模式,现在很多手机都会隐藏掉,这时候只需要打开设备设置→关于手机→连续点击操作系统多次。这时候开发者模式就出现了,一般是在“更多设置”里。进去打开开发者模式,记得把USB调试一起打开。第二种:adb被占用有些电脑,在手机连接上以后,会自动连接手机助手,导致adb被占用,以至于AS无法检测到设备,只要把...原创 2018-08-14 09:51:53 · 6724 阅读 · 0 评论 -
android BLE4.0开发实现与蓝牙设备对接
前言: 不知不觉一年又要到头了,每天上班,吃饭,睡觉三点一线的匆匆而过。最近一个同事买房了,年龄跟我差不多,想想现在的房价,现在的消费,再看下自己的月薪,完全不敢想象自己能在这个城市奋斗到什么样子。有时候在想自己是不是应该换行了,但是换行自己能做什么?适合做什么?这些感觉在脑海里面都是模糊的,想想都觉得自卑。 再说说目前android开发行业吧,确实现在移动端开发大大不如...原创 2018-11-02 09:57:05 · 1162 阅读 · 3 评论 -
android最新面试题汇总
不知不觉金三银四已过去,随后看到很多朋友在博客,简书等发布自己的面试总结,其中有很多知识点都是模糊的,因为项目中很少用到,或者是用到了没有深入去研究。其实在过去,我常常有这种心理,觉得项目中不常用或者几乎不用普及的大可不必去研究。完全是为了开发而开发。久而久之我发现我所做的项目或多或少会出现一些bug,而这些bug有时候会困扰我几个小时,甚至大半天。后面当我去研究那些我认为项目中很少用,或者几乎用...原创 2019-06-04 17:07:01 · 2351 阅读 · 5 评论 -
android studio找不到app moudle和project moudle
1.app moudle为什么找不到呢,估计是ide抽风 先记录下先吧剪切一下setting.gradle下的include ‘:app’, 然后Sync Project with gradle files, 再然后,粘贴回去include ‘:app’ 再build一下就可以了2.project moudle找到项目根目录,idea文件 找到.indea后删除 重启as就...原创 2019-08-21 14:05:40 · 2256 阅读 · 0 评论 -
android Popupwidnow+spinner及spinner无法显示文字
相信大家对Spinner这个控件都不陌生,它就是一个下拉列表选择控件,今天在项目中用到这个控件的时候遇到了两个问题,于是我在这里写下来,1.Popupwindow+Spinner结合使用的时候spinner必须要设置成dialog模式,即android:spinnerMode="dialog"至于其中原因我也大致查了一下,spinnerMode两种模式分别:dialog,dropdow...原创 2019-09-06 08:51:59 · 825 阅读 · 0 评论 -
关于String a=new String("a")创建几个对象问题的正确答案
我们知道String是个不可变的常理,每次赋值都会创建一个对象,但是今天遇到个问题,String a=new String("a")创建了几个对象?首先我举个列子来复习下String;String s="Hellow";s="android";String str="android";String s=new String("a");在jvm的工作过程中,会创建一片的内...原创 2019-09-19 09:12:07 · 3334 阅读 · 2 评论 -
阿里资深工程师教你如何优化 Java 代码!
让代码性能更高需要 Map 的主键和取值时,应该迭代 entrySet()当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。反例:Map<String,String>map=...;for(String...转载 2019-10-31 08:57:50 · 173 阅读 · 0 评论 -
Arouter模块化开发,cmake配置jni实现本地交互
最近在接手项目遇到模块化开发,jni,网络请求签名,加密,Https等等技术栈,在这里我就简单说下,Arouter阿里路由实现组件化开发,以及利用cmake配置实现jni本地交互.1.Arouter 对于大型点的项目来说,模块化开发是必不可少的,他不仅仅方便迭代,维护,也适合团队开发,各自开发各自对应的模块,那么模块化开发我们怎么实现模块之间跳转,数据交互呐?有的小伙伴在想直接start...原创 2019-11-12 16:36:00 · 349 阅读 · 0 评论 -
android studio 配置代码混淆规则
对于现在稍微大型点的app都有一定的安全措施。比如采用https替换http,请求参数签名,加密.敏感数据jni方式保存.另外就是防止反编码提高安全度减小apk大小的代码混淆,今天我主要讲解下android studio 代码混淆配置规则:1.对于每个独立的applicationid(理解不同app)要配置代码混淆都要在优先在其对应的app gradle下配置以下属性:minifyE...原创 2019-11-15 15:22:08 · 1434 阅读 · 0 评论 -
Manifest merger failed with multiple errors, see logs问题处理
开发android的伙伴们或多或少应该都遇到过这种类似的编译问题,面对这种问题我们怎么找出错误呐,ok打开as切换到命令行,首先cd 命令进入我们的项目目录,然后再执行gradlew processDebugManifest --stacktrace可以看到这里提示我们具体错误了,在配置文件里面的3-6行;之前不知道这种办法的时候,面对这种错误真的是摸头不知脑。...原创 2019-11-28 13:23:55 · 180 阅读 · 0 评论 -
android app开发的一些安全及漏洞问题
最近公司的app通过第三方安全检测公司进行了一次安全检测,当然ios,android都有,对于检测出来的漏洞及安全问题,我把android与ios对比了下简直不忍直视,难怪ios上线各种检测,不过话说回来我觉得android系统本来就存在一些漏洞,今天的主题就是关于漏洞及处理方案:1.漏洞分类 通常漏洞分为三类:低危漏洞,中危漏洞,高危漏洞. 低危漏洞就是对app用户数据及敏感信...原创 2019-12-03 16:51:54 · 1372 阅读 · 1 评论 -
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 · 233 阅读 · 0 评论 -
Android中compileSdkVersion、buildToolsVersion、minSdkVersion和targetSdkVersion的含义作用
compileSdkVersion和minSdkVersion还比较通俗易懂,compileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK版本去编译你的项目,minSdkVersion表示当前项目支持的最低安卓系统版本,buildToolsVersion则是指构建工具的SDK版本,也就是AndroidStudio中设置的AndroidSDK版本,bu...原创 2019-12-18 16:29:37 · 3486 阅读 · 0 评论 -
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 · 1722 阅读 · 0 评论 -
android开发常用知识点详解
1.单列模式:我想很多开发者都知道单列模式是一种设计模式,而单列模式的作用是什么呐?很显然对于项目中我们经常使用的对象利用单列模式创建出来保证实例化一次,这样可以减少内存消耗,常见的使用场景有,数据库创建.网络请求.文件流等.那么什么是单列模式呐?单列模式有哪几种呐? (1)首先我们常用的单列模式有三种,懒汉式,饿汉式,双重锁式 /简单懒汉式 public clas...原创 2018-03-03 11:44:06 · 500 阅读 · 0 评论 -
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 · 340 阅读 · 0 评论 -
android 中提示非法字符错误:'\ufeff\',错误需要class,interface,或enum。
今天在项目中遇到这个一个问题,当我运行程序的时候,突然编译错误,提示我"非法字符错误:'\ufeff\',错误需要class,interface,或enum"。于是乎我看了下我的类,没用爆红,也没有什么错误,然后我rebuild,clean,重启,转UTF-8编码都试了,还是编译不通过,最后我想了最简单的办法就是,先复制当前类的代码,然后删除类,重新创建类名相同的,最后复制代码,果然编译通过了。...原创 2018-07-20 17:58:38 · 355 阅读 · 0 评论 -
BaseRecyclerViewAdapterHelper使用——RecyclerView万能适配器
前言 主要声明三点 第一: 关于本文的BaseRecyclerViewAdapterHelper用法,自然是转载的官方原文。或许有的人会很疑惑原文写的那么清除那么完善,为什么我还要写一篇几乎一模一样的?是为了蹭热度让更多的人关注?有更多的点击量?当然不是,我对这么虚伪的东西是非常不齿的。那么自然我有我的原因: 1、我自己其实是个小白,刚入这行不久,由于接触这行时间也不长,加...原创 2018-08-28 17:10:49 · 1845 阅读 · 0 评论 -
神奇的约束布局ConstraintLayout
我们都知道android studio创建布局默认根布局都是ConstraintLayout布局,那么这个布局到底是什么?具体有哪些不同之处? 写在前面:我在博客上面看到有位大佬写了一篇关于利用Constraintlayout实现圆形菜单的文章,觉得很有意思于是乎我就结合kt自己操作了一番,发现ConstraintLayout约束布局确实强大,好了废话不多说直接上代码了 ...原创 2018-08-30 11:26:44 · 686 阅读 · 0 评论 -
ViewPager2 正式版本发布,学不动也要学!
作者:一包纯牛奶链接:https://juejin.im/post/5df4aabe6fb9a0161104c8eb本文由作者授权发布。0概述就在上个月20号(2019年11月20号),期待已久的ViewPager2 正式版终于发布了!不知道你是否已经蠢蠢欲动着手用ViewPager2去改造你项目的ViewPager了?什么?你还不知道Vie...转载 2019-12-25 08:56:49 · 552 阅读 · 0 评论