
Android中级篇
简雨山舍
我的微博@简雨山舍——中国图库签约摄影师!户外旅行摄影师+Android软件开发工程师!
展开
-
Android NestedScrollView嵌套RecyclerView(横向滑动) 滑动冲突解决方案
场景:页面布局采用NestedScrollView进行竖向滑动。内部嵌套了一个横向滑动的RecyclerView。问题:当横向滑动RecyclerView时,竖向滑动的NestedScrollView也会被滑动,互相干扰。无法正常正常滑动。该如何解决滑动冲突?解决方案:第一步:重写NestedScrollView,判断当滑动事件在X轴移动时,不消费事件,交由子RecyclerView进行...原创 2019-12-26 16:41:03 · 5387 阅读 · 0 评论 -
如何实现一个应用安装后,在手机桌面不显示,并可以通过其它入口启动该应用?
场景:一个应用安装后,不出现在桌面,但是可以通过其他App上的入口启动。比如,你们公司有一个A应用,里面包含了多个App的入口,点击后可以启动其他App。但是桌面上又不显示其他App。问题:如何实现一个应用安装后,在手机桌面不显示,并可以通过其它入口启动该应用?解决方案:只要这个应用没有launcher,那么他就没法出现在桌面上。去掉清单文件中这行:<category and...原创 2019-08-12 17:08:27 · 3911 阅读 · 0 评论 -
Android 如何检测自己的App有没有被授予需要的权限
场景:App需要定位权限,或者读取文件权限,申请了权限,但用户拒绝了,当做对应操作的时候要检测一下有没有该权限,没有就弹出提示窗,让用户去设置问题:如何检测有没有对应的权限解决方案://使用该方法,检测是否被授予了对应的权限//checkSelfPermission方法中//第一个参数是Context//第二个参数是你清单文件里面配置的需要的权限方法的返回结果PackageM...原创 2019-08-14 14:24:54 · 8961 阅读 · 0 评论 -
Android 高德地图在一个点添加扩散的水波纹效果解决方案
场景:需要在地图定位点添加一个向外扩散的水波纹效果。如图问题:如何实现在一个点添加一个向外扩散的动画?实现方案:解决思路:首先看下高德地图的demo,该demo展示了在3D地图上如何实现定位圈向外扩展的动画效果。但是无法实现图上的效果。https://lbs.amap.com/dev/demo/location-circle#Android我们的思路是,添加多个圆,然后间隔执行扩散...原创 2019-07-25 13:46:30 · 2513 阅读 · 3 评论 -
Bugly Tinker热修复 后台显示补丁下发成功 并且已激活,但是没有生效的问题解决方案
场景:对于加固包通过tinker进行热更新,补丁显示下发生成,并且已经激活,但是补丁实际上没有生效。问题:是什么原因导致的补丁不能生效?解决方案:通过各种原因的排查,最终锁定在混淆问题上。因为混淆规则不正确,或者没有添加tinker的混淆规则。导致代码混淆后出现异常找不到文件。混淆规则配置如下规则-dontwarn com.tencent.bugly.**-keep public c...原创 2019-07-04 17:39:35 · 2918 阅读 · 2 评论 -
Android Studio warning variantOutput.getProcessResources() 无法实现tinker热修复问题解决
场景:1.每次编译都会出现警告API过时WARNING: API 'variantOutput.getProcessResources()' is obsolete and has been replaced with 'variantOutput.getProcessResourcesProvider()'.It will be removed at the end of 2019.Fo...原创 2019-07-04 09:56:03 · 1230 阅读 · 0 评论 -
Glide加载gif动画只播放一次的方法 Glide加载gif动画先显示最后一帧再开始播放动画导致闪屏的解决方案
场景:Android App利用ViewPager制作引导页,然后利用Glide加载gif动画。问题:1.Glide加载gif动画如何只播放一次?2.Glide加载gif动画,在viewPager切换的时候,总是先显示最后一帧,才开始播放动画,导致闪屏看着很不舒服,该如何解决?解决方案:1.Glide加载gif动画只播放一次的解决方案:只需要给Glide设置.listener方法,然后...原创 2019-05-29 16:25:51 · 7298 阅读 · 0 评论 -
Android 百度地图封装为aar包引用,缺失assets文件导致int android.graphics.Bitmap.getWidth()解决方案
场景:将百度地图封装成一个lib库,给应用引用。问题:引用时报错 java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference at com.baidu.mapapi.ma...原创 2019-05-31 14:19:30 · 2300 阅读 · 1 评论 -
你认为插件化可以完全替代组建化么?
场景:今天同事说可以,还跟我说淘宝全是插件化,每个模块都是可以动态加载的,我感觉不对,一时又说不清楚。问题:你认为插件化可以完全替代组建化么?解决方案:不是一个东西,不能相互替代。不是的,淘宝是插件是编译期的,本质还是组件化。告诉你同事,搞清楚再说。...转载 2019-05-27 10:43:10 · 260 阅读 · 0 评论 -
使用Glide时 错误: 找不到符号 符号: 类 GlideApp解决方案
场景:编译时提示找不到符号 符号: 类 GlideApp问题:如何解决找不到类 GlideApp的问题?解决方案:1.使用了BuffterKnife注解框架,但是在注解时,你使用了私有权限修饰符private。所有注解必须使用public修饰。2.其他地放有问题,导致注解没有生成 类 GlideApp。...原创 2019-05-24 15:29:59 · 3234 阅读 · 1 评论 -
Android 通过github创建Android库 给其他项目依赖引用 | 如何创建自己的第三方库
场景:通常我们会在Android开发过程中依赖很多第三方的库,现在自己想封装一个公共库也给别人用。问题:如何创建Android库,给别人依赖引用?解决方法:1.将自己的项目托管到github上。(如何托管到github网上文章很多,自行搜索)2.点击releases3.点击Draft a new release4.填写版本号,名称,描述信息5.点击Publish releas...原创 2019-04-02 11:57:01 · 1219 阅读 · 0 评论 -
Android 抓包神器Fidder使用方法详解:下载,安装,配置,使用教程
场景:抓取任何一款手机App的请求连接问题:1:有什么好的抓包软件?2:Fidder怎么使用?解决方法:1,常见的抓包软件(1)Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,...原创 2019-03-28 17:48:42 · 4037 阅读 · 0 评论 -
Android热修复 有没有必要接入热修复?热修复方案推荐bugly封装的tinker
场景:App想要实现热修复功能问题:1,Android管控越来越严格,App有没有必要接入热修复?2,Android热修复方案那个比较好?解决方法:1,App接入热修复,修复一些bug是很有必要的。2,Android热修复方案建议接入bugly的tinker。免费的,并且和bugly有共同的可视化管理后台。bugly网址: https://bugly.qq.com/v2/...原创 2019-03-26 10:49:40 · 423 阅读 · 0 评论 -
Android 对于armeabi-v7和armeabi的取舍
场景:项目只支持armeabi-v7,引入一个第三方aar,该aar只支持armeabi。问题:这时候面临的两个取舍问题1,为了兼容性更好同时导入armeabi-v7和armeabi的so包,但包体积会增大好多。2,为了控制包体积的大小,只放armeabi-v7的包,但是无法兼容老机型。解决办法:1、方法一:放armeabi-v7的so就可以了,少数老设备才需要armeabi。如果想万...原创 2019-03-26 10:03:13 · 5352 阅读 · 0 评论 -
上传项目到github切换了github账号后push时报错The requested URL returned error: 403解决办法
最近写了几个公共库,开始是上传到自己的github上,后来要上传到公司的github上,就按照正常步骤,在androidstudio的设置里面配置了github账号。然后就去上传,结果总是报错,说项目创建成功,但是Push没有成功。去github看,项目是创建成功了,但是里面没有内容。The requested URL returned error: 403经过很久很久的尝试,终于找到了解决...原创 2018-12-06 16:45:03 · 11891 阅读 · 0 评论 -
Android公共工具库使用说明文档
RxBus使用文档版本号 修改人 时间 备注1.0.0 王建明 2018-11-221.集成步骤(1).在工程的build.gradle中添加allprojects { repositories { ... maven { url 'https://jitpack.io' } }}(2)在app的build.gradle中添加dependencies {…… ...原创 2018-11-23 11:02:11 · 777 阅读 · 1 评论 -
Android基于Bugly实现异常实时上报和热修复集成文档
Android基于Bugly实现异常实时上报和热修复集成文档版本号时间1.0.02018-11-22章节内容1Tinker热修复原理2bugly集成步骤3生成热修复补丁4热修复补丁下发5热修复补丁生效6在bugly申请appId7在bugly查看异常信息8注意事项1.Tinker热修复...原创 2018-11-22 17:03:56 · 811 阅读 · 0 评论 -
教你如何将工程中的一个功能模块提取成library库文件,供其他工程轻松接入,只需简单5步
我们在日常开发中经常会引用一些第三方的库文件,提高我们的开发效率,那你知道如何创建库文件吗?还有一种场景,同时有几个项目,但是需要接入同一个功能模块,当然可以将功能模块开发成组件,但是这个成本有点高,难度也大考虑的问题多。那么开发成一个library库文件就成了我们的首选。然后只需要copy到要接入的项目当中,然后简单的调用,配置之后就可以接入该功能模块了。最常见的一种场景就是,主工程的主Activ原创 2017-05-26 20:01:56 · 3924 阅读 · 2 评论