Android
文章平均质量分 79
Android相关技术分享
优了个秀的
记录日常点滴,每天进步一点点。
展开
-
Google开发者账号申请
背景Android端应用要出海,Google Play无疑是最好的平台,要上架Google Play,必须拥有Google开发者资质。账号申请申请Google开发者账号大致分为两步:一、申请Google账号;二、创建Google开发者账号。申请条件也比较简单:一是能访问外网;二是需要一张外卡(Visa、万事达、JCB、运通等)。一、申请google账号打开创建Google 账号地址,在此注册账号,可以使用Google邮箱,也可以使用其他邮箱(QQ、新浪等),这里向公司申请了个公共邮箱,所以点 改原创 2021-09-09 21:56:27 · 9131 阅读 · 2 评论 -
重拾系列之——Android系统启动流程
概述Android系统的启动从按电源键拉起Room,到加载引导程序唤醒nei,再经历init进程、Zygote进程、SystemServer进程启动各种系统服务进程,最后AMS启动Launcher进程进入到系统桌面。init进程init进程是系统中的第一个进程,在引导程序BootLoader唤醒内核后启动,init进程会在系统中找到一个init.rc脚本,init进程根据init.rc配置启动了zygote服务进程Zygote进程所有的应用进程、包括system_server都是Zygote创建的原创 2021-01-20 14:39:39 · 183 阅读 · 0 评论 -
Android+Java后端数据交互加密——AES+RSA
早前公司新开发了个项目,在数据加密部分讨论后选择了AES+RSA方式(对称+非对称)。参考了网上部分比较优秀的例子后,最终使用了一下实现方式,有需要的朋友可以在文章的最后获取完整demo。话不多说,直接开始。下面会先简单介绍加解密思路,然后再分别介绍Java后端和Android端的实现,最后再简单搭建个环境实现两端数据加解密。加密解密流程一、加密: 1、客户端和服务端双方约定好公私钥对,即公钥PUBLIC_KEY,私钥PRIVATE_KEY 2、客户端使用私钥PRIVATE_KEY对数原创 2020-10-26 15:42:09 · 1763 阅读 · 2 评论 -
Android 手撸一个简易路由Router
上一篇文章 介绍了搭建一个组件化项目,但是有一个痛点是我们必须要解决的,那就是组件之间的通信,用惯了单体结构项目的同学,大多数是使用显示Intent进行Activity的,但是这种做法在组件化项目中是行不通的,毕竟各组件是相互独立的,并不能持有另一个组件的引用。那只能用别的方法了,路由表是目前比较流行的方案,这里推荐两个比较多人喜欢的路由框架,Arouter 和 ActivityRouter ,具体用法和解释网上很多牛人都已经介绍得很清楚了。这里是打造一个自己的专属路由。开始工作这里使用的是APT技术原创 2020-07-31 16:43:37 · 643 阅读 · 0 评论 -
真香系列之Android 组件化开发
随着项目日益变得复杂、庞大,单一结构项目变得越来越难以维护,平时改个很小的功能,往往有种牵一发而动全身的赶脚,特别难受。最近简单尝试了下组件化后,嗯~真香。先上个项目结构图,简单分了壳app、主页main、登录模块login和个人中心模块member,另外还简单拆分了公共组件、基础组件和路由。开始搭建首先创建壳工程,app模块下里面什么也不需要,它只是个空客,如果不小心默认生成了MainActivity,删掉;然后修改AndroidManifest.xml,去掉启动Activity相关,修改后如下原创 2020-07-30 16:47:39 · 169 阅读 · 0 评论 -
RecyclerView 局部刷新、删除错乱
列表的局部刷新和删除错乱问题尽管网上已经有很多牛人分享过解决方法,这里还是根据自己的实践记录一下吧。一、局部刷新有这样的场景,我们需要修改item中的某一要素,如:详情介绍,那么通常有以下几种方式:1. Adapter.notifyDataSetChanged()2. Adapter.notifyItemChanged(position)3. Adapter.notifyItemChanged(position, payload)下面分别介绍这几种使用的可行性1、notifyDataSet原创 2020-07-28 14:29:40 · 954 阅读 · 0 评论 -
Android Jetpack之Navigation
此篇章简单介绍Navigation的使用,概要介绍请参考Android开发者文档首先新建一个工程,然后创建Activity,这里AS提供了一些模板,我们可以选Navigation相应的模板,我这里为了熟悉编写流程,所以就建了个空的Activity。要使用Navigation组件,Google方面有些限制:AS必须要3.3及以上的版本,然后在module下的build.gradle添加依赖,这里用的是Java的 def nav_version = "2.3.0" // Java language原创 2020-07-01 16:48:46 · 687 阅读 · 0 评论 -
Android BrocastReciver广播使用
BrocastReciver(广播)是Android四大组件之一,在Android体系中占据比较重要的地位。比如监听网络的变化、应用安装卸载、电量变化等等广播按类型可分为普通广播、有序广播。按注册方式分为静态注册和动态注册1、普通广播:sendBroadcast()方法发送,顺序不确定,无法拦截;但是效率较高2、有序广播:sendOrderedBroadcast()方法发送,顺序确定(-1000~1000),数值越大优先级就越高,可以被拦截。3、静态注册:在AndroidManifest.xml中原创 2020-06-04 16:16:26 · 436 阅读 · 0 评论 -
Android Intent 传输大图片
Android中的Intent作为四大组件间通讯的桥梁,支持传输基本数据类型、序列化对象等等但是要传大图片呢?能不能传呢?下面开始做个试验,先准备一张近500k大小的图片,存放在mipmap下直接通过Intent的putExtra方法传输,并且打印bitmap大小。Intent intent = new Intent(this, Main2Activity.class);bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.原创 2020-06-02 17:07:06 · 3294 阅读 · 4 评论 -
重新认识 Android ContentProvider
介绍1、是什么?:ContentProvider是Android四大组件之一,也是五种数据存储的媒介之一,在Android中重中之重2、作用?:进程间或进程内数据共享本文简单介绍进程间数据共享,会使用到几个常用类和关键字,下面先介绍一下:1、authorities:授权信息,在清单文件声明;2、URI:统一资源标识符,格式:content://授权信息/表名;也可以指定表中的某条记录,也可以配置通配符。这里不展开3、UriMatcher:在ContentProvider中声明,根据URI匹原创 2020-06-01 17:12:53 · 156 阅读 · 0 评论 -
重拾Handler
说到Handler,相信学过Android的同学都能随口说出:这家伙是线程间通信的一种机制。但是,平时用来发送消息的方式有哪些?Handler是什么时候和Looper关联的?又是怎么关联的?消息在子线程中发出,在UI线程为什么能获取的到?这这这。。。太难了Handler不能单独使用,内部配合着Message,Looper,MessageQueue以及ThreadLocal,这几个平时比较少直接...原创 2020-05-05 19:43:55 · 119 阅读 · 0 评论