android
文章平均质量分 96
rain9155
每天进步一点点
展开
-
优雅地处理运行时权限请求
前言从android 6.0(API 级别 23)开始,android引入了运行时权限,用户开始在应用运行时向其授予权限,而不是在应用安装时向其授予权限,如果应用的某项功能需要使用到受运行时权限保护的资源(例如相机、位置、麦克风等),但在运行该功能前没有动态地申请相应的权限,那么在调用该功能时就会抛出SecurityException异常, android 6.0已经推出了很多年了,相信大家对于运行时权限的申请过程已经非常的熟悉,但是android的运行时权限的申请过程一直都是非常的繁琐的,主要有两步:原创 2021-10-01 02:53:01 · 689 阅读 · 0 评论 -
快速发布组件到mavencentral
前言在很久之前写过一篇发布开源库到jcenter的文章,但不幸的是几个月前Jfrog发布了终止Bintray服务的声明,声明的大概意思是说2021年3月31号之后Jcenter仓库将不再接收用户的组件提交,同时将Jcenter设为只读代码仓库,无限期地提供现有组件供用户下载,也就是说目前Jcenter仓库的状态是你无法再提交组件的更新,但你可以继续下载你以前托管的组件版本,所以现在你要做的就是把你的组件的新版本发布到其他仓库,例如Jitpack和MavenCentral,我曾经写过一篇快速发布开源库到ji原创 2021-09-15 20:54:30 · 372 阅读 · 0 评论 -
使用贝塞尔曲线实现一个loading控件
前言上一篇文章:仿微信滑动按钮本文是自定义View实践第二篇,上一篇实现了一个简单的滑动按钮,知道了一些自定义View的基本步骤,本文是使用贝塞尔曲线实现的一个加载中控件,接下来进入正文讲解。地址:WaveLoadingView效果图可以看到,WaveLoadingView除了用于loading外,还可以用于显示进度的场景。实现方式在效果图中,波浪是曲线的形式的,所以我们需要想办法...原创 2020-01-01 14:38:53 · 1962 阅读 · 0 评论 -
仿微信的滑动按钮
前言前几天写过一篇文章View的工作原理,有原理不行,还要有实践,刚好把以前项目写过的仿微信滑动按钮控件封装一下,所以本文记录一下我实现这个控件的细节。效果图控件使用效果如下:![](https://img-blog.csdnimg.cn/20190907195948577.gif)除了颜色,看起来和微信的还是挺像的。准备1、选择自定义View的方式自定义View有3种途径实现:1...原创 2019-09-07 20:01:48 · 455 阅读 · 0 评论 -
基于P2P的局域网即时通信应用
前言这是一个使用java语言开发的基于P2P的局域网即时通信Android应用,界面是高仿微信的聊天界面,在里面你将会学到java多线程并发编程、Socket编程、UDP广播、TCP连接等。项目地址:P2P设计思路P2P不同于C/S方式,它没有集中式的服务器,在P2P中,程序既是服务器又是客户端,在同一个局域网内,每个用户发送的消息不会经过路由器转发到其他局域网,那么如何保证大家都在同一个...原创 2019-07-14 11:21:55 · 4163 阅读 · 8 评论 -
android6.0动态权限申请的正确流程
前言从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。所以如果你的应用使用到了一些危险权限,就必须在AndroidManifest.xml 中静态地声明需要用到的权限,并在使用到该功能时要动态的申请,否则在调用到相应权限功能时候,会抛出 SecurityException异常。所以本文探讨一下动态权限的申请的正确流程,并把它封装成一个...原创 2019-06-06 17:47:05 · 1170 阅读 · 0 评论 -
使用bintray-release发布开源库到jcenter
前言前几天写过一篇文章快速发布开源库到jitpack,在里面我控诉发布jcenter的发布过程繁琐,对新手不友好,直到这几天我遇到了一个bintray-release插件,发现它可以帮助你更简单的发布开源库到jcenter上,而且过程也很简单。如果你还不懂jcenter是什么或者你不懂那些配置有什么作用,强烈建议你先看一下这个两篇文章教你一步步发布一个开源库到 JCenter、手把手教你发布自...原创 2019-06-05 21:32:59 · 697 阅读 · 0 评论 -
快速发布开源库到jitpack
前言最近几天准备发布一个开源库,方便自己使用,一开始了解到的是发布到jcenter仓库中,它是目前世界上最大的java和Android开源软件构件仓库,而且 JCenter 是 Android Studio 默认使用的服务器仓库,只需要一句话就可以搞定整个包的导入过程,但是它的发布过程繁琐,而且对于新手来说特别不友好,就算你跟着网上教程来发布,运气好的话你就会发布成功,如果运气不好,你就会遇到很...原创 2019-06-10 22:47:05 · 794 阅读 · 0 评论 -
搞定两种场景下的Fragment懒加载
前言我对懒加载的定义是:数据的加载要等到页面对用户可见时才加载,否则的话会浪费用户流量。网上实现懒加载的方案非常多,但大多数都是解决了我下面说到的场景一的懒加载,本文还解决场景二的懒加载方式。如果不想看下面的分析,直接这个类导入你的项目中,需要懒加载的Fragment继承这个类,并重写相应的方法就行:传送门。场景一: Viewpager + Tablayout + Fragment什么?不...原创 2019-05-19 21:02:36 · 501 阅读 · 0 评论 -
如何获取Android应用与系统信息
前言本主要了解一下Android系统信息的获取,apk应用信息的获取。本文相关源码在文末给出Android系统信息的获取有时我们想要获取手机系统的配置信息,通常可以从以下俩方面获取:android.os.BuildSystemProperty1、android.os.Buildandroid.os.Build包含了系统编译时的大量设备,配置信息,它里面的字段含义如下...原创 2019-04-13 18:07:31 · 811 阅读 · 0 评论 -
SVG入门学习
前言SVG对于android开发者听起来是陌生的东西,因为它是属于前端的产物,其实Android中也是支持SVG的,语法也很简单易懂,本文就通过我自己学习的经历,和大家一起学习一下SVG。什么是SVG?Google 在Android5.X中增加了对SVG矢量图形的支持,可以用来创建高效率的动画, 所以我们先来了解一下SVG的定义:可伸缩矢量图形(Scalable Vector Grap...原创 2019-04-12 22:48:14 · 375 阅读 · 0 评论 -
从进程的角度看Android的系统架构
上一篇文章Android的系统架构概述原创 2019-03-28 22:08:12 · 353 阅读 · 0 评论 -
Android系统架构概述
前言下面是一张Android系统架构经典图示意图。大致分为5层,即Linux内核层,硬件抽象层、库和运行时,Framework层,和应用层。Android系统架构鼓励系统组件重用,共享组件间数据,并定义组件间访问权限控制。看图说话:可以看到android给出的经典架构图大概可以把android分为5层,下面分别介绍:1、LinuxLinux内核层,android最底层最...原创 2018-09-28 22:01:01 · 3036 阅读 · 0 评论