Android开发经验分享
文章平均质量分 75
布丁西西
万事积于忽微,量变引起质变!
展开
-
AndroidStudio 3.6 OfflineMode
前言 前天升级到AndroidStudio3.6,今天突然发现找不到gradle的offline模式了,刚摸索了会,以此记录下。AndroidStudio3.6 Gradle Offline模式如何开启1.一般右侧有一个Gradle的工具栏,点击显示Gradle工具栏,如下图,这种情况下,是开启了offlineMode,再次点击就关闭了.2.如果没有找到这个右...原创 2020-03-01 11:17:19 · 4249 阅读 · 0 评论 -
小米手机"后台弹出界面(允许应用在后台弹出界面)"权限问题解决方案
前言小米手机有个特殊的权限,"后台弹出界面(允许应用在后台弹出界面)",默认是拒绝的,如下图所示.OK,故事就此展开.允许后台弹出界面 顾名思义,这个权限意思就是说,我应用在后台了,如果没有开启这个权限,通过Intent启动Activity的方法将不会启动界面成功,并且小米会输出以下日志."com.android.server.am.ExtraActivi...原创 2020-01-09 16:24:19 · 99102 阅读 · 9 评论 -
仿抖音/快手可手势拖动关闭的Dialog
前言 最近使用短视频App,比如快手和抖音,发现他们的回复评论框(感觉Dialog实现的,当然也还可以用其他方式实现),可以向下拖动关闭,感觉效果还可以,体验不错,要知道一般的dialog都是点击外部关闭,效果很一般,因此我想到要优化下这个体验。效果图 1.前几帧可以看到向下拖动,拖动到一半后,松开手指则Dismiss掉Dialog. 2.后续几帧Dia...原创 2020-01-08 15:41:31 · 1987 阅读 · 0 评论 -
Android LoadManager无法回调onLoadFinish问题
前言Android LoadManager是3.0之后引入的,现在都8.0了,项目中可以不用考虑低版本的适配,完全可以使用,我项目中用的比较多,近期发现,LoadManager 有时无法回调onLoadFinish的方法.解决方法重载onStartLoading方法加入forceLoad()(意思是强制执行)强制执行该回调方法package co原创 2017-09-08 11:12:26 · 1655 阅读 · 0 评论 -
Installation error: INSTALL_CANCELED_BY_USER
问题:安装不了apk机型 : 小米红米note3 这个我之前在没更新MIUI8.1.3.0之前还可以安装app,今天突然安装不了,查了好多的资料,也没有解决,最后,我思考良久,是不是因为更新系统的缘故。 解决方法: 打开小米开发者选项,允许USB安装(更新前是好像是没有这个选项的,有点坑),然后再次运行程序,安装成功!原创 2017-03-31 10:53:31 · 1022 阅读 · 0 评论 -
Android视频加密那点事儿!
前言 最近有需求要做视频的加密。因为视频下载到本地后,为了防止二次拷贝和二次上传到其他渠道,有些还是付费的视频,因此要对视频做加密,加密给了二周的研究时间,留下两周作为开发和测试阶段,故事就这样开始了!分流加密(第一周) 万事开头难。原创 2018-01-09 10:47:55 · 9967 阅读 · 14 评论 -
Android版本更新历史总结(致那些年安卓开发打怪升级之路)
前言好久没有写博客了,最近工作真的忙,适当的总结是很有必要的,今天就总结下安卓各版本对应号,主要是我自己老忘记,以此来记录下!Android历史版本Android 1.0(没有开发代号)Android 1.1 - Petit FourAndroid 1.5 - Cupcake (纸杯蛋糕)Android 1.6 - Donut (甜甜圈)Android 2.0/2.1 - Éclair (松饼)A...原创 2018-05-25 14:56:42 · 3690 阅读 · 1 评论 -
Android阅读器放大镜
目录前言效果图实现思路理解Canvas与BitmapAndroid PorterDuffXfermode模式理解文末彩蛋 前言 文字选择放大镜,类似于微信阅读器移动选择文字圆形放大镜效果. 效果图 长按移动选择文字,圆形放大镜的作用是为了方便选择文字,效果如下图gif. 实现思路 当前手指所选中的文...原创 2018-08-01 15:24:52 · 2196 阅读 · 2 评论 -
Android判断应用是否具有定位权限
前言 好久没有更新博客了,记录下最近的工作. 应用是否具有定位权限的判断 网上搜了好久,都是context.checkSelfPermission 等来获取Permission_Granted等值.但是用户手动拒绝掉这个定位权限后,获取到默认也是0,很奇怪,我的项目targeSdkVersion = 22,不是6.0,没有适配权限,可能是这个问题所致. 直接上...原创 2018-12-25 17:32:25 · 8118 阅读 · 0 评论 -
Android获取WiFi名称/路由器AP地址总结
前言 谷歌有一点点的蛋疼,没想到定位也需要加上版本的判断了,再此总结下定位权限以及WiFi AP SSID的获取。安卓9.0定位权限安卓系统在9.0之后如果不开启手机的GPS服务功能,应用即使已经获取到定位权限,也无法进行定位,开启GPS服务后,应用才可以有效定位。(我们用的是百度地图)。9.0系统限制比较多,再此多说一句,因为我做的是打卡相关的业务。1....原创 2019-09-18 15:42:25 · 2583 阅读 · 0 评论 -
Android动态监听GPS状态
前言 因为上一篇博客的缘故,发现安卓9.0的定位跟GPS是否开启有很大关系,因此就想到安卓能不能监听GPS的状态,类似于广播这种注册接收等,经过搜索发现,安卓系统还是有预留这个监听,也许大家对这个需求可能不是太需要,但是我的需求场景是需要的。GPS 状态的监听Android 中有关于GPS状态的常量,存在于Setting中Settings.Secure.getUri...原创 2019-09-19 14:12:23 · 4442 阅读 · 0 评论 -
Android中ContentProvider的理解使用
前言Android四大组件对大家来说都不陌生,但是相对于Activity,Service,广播来说,ContentProvider好像很容易被忽略,因为他确实在普通项目中很少使用,不使用它也能很好的完成项目需求,但是ContentProvider我觉得是Android中最牛逼的设计之一了,很多的数据共享都是用它来实现的,最常用的是android获取手机联系人就是用的Conten原创 2017-09-07 17:51:27 · 3059 阅读 · 5 评论 -
Android中解决由单例引起的内存泄漏问题
前言Android 中 内存泄漏非常的常见,今天给大家讲下由“单例”引起的内测泄漏问题.使用LeakCannary 检测内存泄漏这个工具想必大家也很熟悉了,Jake大神公司出品,拒收,还可以检测出Android SDK 中存在的内存泄漏问题,可见,相当的厉害了,引入方式如下:debugCompile 'com.squareup.lea原创 2017-09-14 16:11:07 · 5775 阅读 · 0 评论 -
Android仿QQ侧滑删除实现
效果图如下首先可以分析下,整行继承自线性布局,分为内容区域ContentRect 和 操作区域(即删除,置顶的操作)。则整个线性布局下有两个child:一个内容View,一个可操作view,可以简单的理解为根据用户的手势来向左,向右滑动子元素,每次都requestLayout 产生的位移来重新布局子元素的位置,ok原理就是这样,无非就处理内容区域和操作区域的临界点,可以看到,当打开原创 2016-10-10 15:18:09 · 2878 阅读 · 0 评论 -
Android事件分发,事件拦截,事件处理总结
对于安卓的事件分发,拦截及事件处理无论是面试还是在日常应用中都涉及的比较多,网上的帖子也很多,感觉都没说透,或者没直接点出来,我认为郭神这篇博客写的事件分发理解的挺好 http://blog.csdn.net/sinyu890807/article/details/90974631 对于事件的分发,安卓中有decorView的概念,点击一个button,首先是由其父类来执行事件的分发,从父类到原创 2016-10-11 10:46:22 · 2471 阅读 · 0 评论 -
一个ConcurrentModificationException引发的血案
这个错误时比较常见的,今天我们源码分析下里边的机制,这个是我们在遍历list或map时经常会看到这样的错误java.util.ConcurrentModificationException:at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)这个场景一般是我们是我循环遍历,根据某个条件来移除这个list或map中的对象我原创 2016-10-20 15:39:59 · 658 阅读 · 0 评论 -
Java中十进制,二进制,十六进制的相互转换总结
首先,先来理解一些概念,计算机底层使用的数制是二进制,用java编程使用的是十进制,但java底层仍使用二进制。不管任何语言,二进制,十进制,十六进制等都是一样的,我们起码都要了解知道,面试中也会有加分的,就像计算机中的01代码,其实就是二进制。一 十进制 十进制的基本数字0~9,逢十进位。10称做“基数”,10^n(10的n次幂)被称作“权”。10000=1×10^4100原创 2016-12-13 16:38:00 · 4767 阅读 · 0 评论 -
android抛物线动画实现
最近面试,面试官说了一个场景,大概类似于类似于两个点比如AB吧,从A到B这个运动轨迹要以抛物线的形式运动,说下实现的思路,因为我做过新手引导,通过获取到两个点的绝对坐标,这样通过动画来说,面试官说了,动画的话是一条直线,我当时立刻想到了贝塞尔曲线,我说用贝塞尔曲线来实现,他不说话了,貌似这个面试官是Java的,对安卓不是很了解,我觉得我面试的基本都回答的很不错,竟然后续也没通知了,额,心累啊,最近原创 2016-12-19 20:12:45 · 6856 阅读 · 0 评论 -
JavaMail 创建文件夹
最近有个需求,邮箱可以建立自己的文件夹,类似于“INBOX”,首先要理解什么是文件夹,下图是我对邮件服务器的理解.其中Store 见名知义,就是存储的意思,它就是存储邮件的邮件服务器,相当于Windows的本地C盘,D盘,里面有许多的文件夹,比如Store里咱们常用的“INBOX”收件箱,Drafts 草稿箱,Sent 已发送等,这个也需要注意,每个邮件服务器的文件夹名字不太一样,像比原创 2017-05-26 09:50:43 · 3751 阅读 · 3 评论 -
JavaMail重命名文件夹
前言: 最近有点焦虑,还是坚持自己吧,加油! 和上篇创建文件夹的方法类似 JavaMail创建文件夹 所以,直接切入主题吧。 查看重命名API public abstract boolean renameTo(Folder newName) throws MessagingExceptionRename this folder原创 2017-06-02 10:03:33 · 2075 阅读 · 0 评论 -
JavaMail删除文件夹
前言有时候会有些迷茫,就慢慢坚持吧,时间会证明一切吧!JavaMail创建文件夹 JavaMail重命名文件夹删除文件夹和重命名,创建一样,FolderListener监听分别为创建,重命名和删除的成功回调,其实可以写到一篇博客里,我想既然分开了,就分开写吧,单一职责,嘿嘿! 查看API文档 public abstract boolean delete(boo原创 2017-06-02 10:34:29 · 1423 阅读 · 2 评论 -
Android自定义TextView实现文字图片居中显示
最近有个需求是这样的,人民币的符号“¥”因为安卓手机系统的不一致导致符号不是完全一样,所以用美工的给的图片代替,考虑到用的地方比较多,所以想着写一个继承于线性布局的组合控件,后来一想,安卓中不是有TextView吗,这个自带图片的控件,后来写了个demo,因为我是用的MatchParent,导致问题出现,人民币符号不是和文字一样的居中,因此才有了这篇博文,让我们来自定义TextView吧,这个场景原创 2016-11-30 11:32:03 · 9101 阅读 · 3 评论 -
Android仿QQ,网易邮箱客户端收件人控件
1 首先,看下实现后的效果 2 这个功能首先想到的是安卓原生控件AutoCompleteTextView和 MultiAutoCompleteTextView 前者用的还是比较多的,比如字符联想,最近搜索记录等用的都是前者比较多,后者要着重说下了,它是AutoCompleteTextView的升级版,原创 2017-05-18 10:00:32 · 4244 阅读 · 3 评论 -
Android中一些开发的小技巧总结(持续更新)
前言做事,写代码都要找到最优的方案! Activity中获取Fragment对象 不管是布局xml里是fragment(有id),还是一个帧布局,帧布局最终要替换成对应的fragment,通过findFragmentById可以获取到对应的fragment对象,然后你要使用fragment里面的某些方法等比较方便,网上说的那些通过回调等也是可以的,但是通常来说,Activ原创 2017-06-23 16:40:07 · 565 阅读 · 0 评论 -
android Emoji 研究使用
前言原创 2017-09-06 18:39:08 · 2209 阅读 · 0 评论 -
Mac下解压NDK .bin文件
原文链接:http://blog.csdn.net/wu10045125/article/details/42442179Mac下解压文件,需要获取相应的文件权限,使用命令解压!1.cd 到指定目录下,获取文件权限chmod a+x android-ndk-r10c-darwin-x86_64.bin2. 使用命令解压出文件./android转载 2016-09-28 14:22:00 · 859 阅读 · 0 评论