
Android基础
文章平均质量分 81
主要整理以Android基础为主的一些内容,如四大组件,View等
残风乱了温柔
追求卓越,成功便会在不经意间追上你
展开
-
Android 常用SDK整理总结
V1.0 更新于2022.02.17整理一些常用的SDK,方便新建项目的时候使用,定期更新,欢迎大家给予补充一、官方的SDK material 'com.google.android.material:material:1.2.1' JetPack组件库 Lifecycle Viewmodel Livedata DataBinding / ViewBinding Navigation WorkM...原创 2022-02-17 16:46:45 · 4202 阅读 · 2 评论 -
Android 通过ListView实现联系人列表字母索引
转载:https://blog.youkuaiyun.com/a_zhon/article/details/53214849学习大神的思路和逻辑,很清晰。这篇博文也不错:https://blog.youkuaiyun.com/iamdingruihaha/article/details/61921010相信大家对这个列表字母索引已经不陌生了,在很多app中也随处可见,像没团的城市地址选择,微信联系人列表,手机...转载 2018-08-24 15:12:24 · 4526 阅读 · 4 评论 -
Android RecyclerView优雅实现复杂列表布局(一)
转载:https://blog.youkuaiyun.com/huang3513/article/details/62044688前言在多彩布局不断呈现的今天,多布局混合排布成为一个时尚,今天就结合Holder实现RecyclerView复杂列表布局。效果图如下(三种布局):1.首先在我们主布局中加入我们的RecyclerView控件。2.在MainActivity中初始化我们的控件...转载 2018-08-31 15:14:23 · 3908 阅读 · 0 评论 -
Android RecyclerView优雅实现复杂列表布局(二)
转载:https://blog.youkuaiyun.com/huang3513/article/details/62046528前言学习了(一)中那个RecyclerView的一些基础知识,如果没有具体看懂可以再返回看不一样的RecyclerView优雅实现复杂列表布局(一),那么接下来我们就在(一)的基础之上,完善稍微复杂一点数据处理。不一样的RecyclerView优雅实现复杂列表布局(二)...转载 2018-08-31 15:17:23 · 5510 阅读 · 2 评论 -
Android 腾讯bugly的学习使用
转载:https://www.jianshu.com/p/7984b3ee7880前序:一般一个项目的开发,从需求调研到开发完成正式上线必须要经历修改bug,修改bug,修改bug 的死循环中,而往往一些项目在上线之后由于测试人员没有测试出一些偶发概率的bug,这就导致用户在下载使用App的过程中出现用户体验不好,甚至程序闪退的问题。在遇到这种情况下,如果我们的工程师能够及时的发现问题并且及时...转载 2018-11-01 15:51:00 · 3023 阅读 · 6 评论 -
Android Studio 练习java程序专用
转载:https://blog.youkuaiyun.com/xiaxiayige/article/details/46706949有时候需要写点小测试程序,测试方法是否可靠,有效。需要写个java测试程序测试,Android Studio 上运行java 程序不像Eclipse那样方便 但是Android Studio上面还是可以运行java 小程序的。步骤1 : File -----> ...转载 2018-11-01 19:51:52 · 1679 阅读 · 0 评论 -
Android 动态设置TextView的drawableLeft等属性
之前在TextView文本的上下左右处添加一个图片时,都是直接在XML文件中配置如下:android:drawableLeft="@drawable/icon_launcher"android:drawablePadding="10dp"现在需要在代码中动态地添加实现该功能,做法如下:使用setCompoundDrawables(left, top, right, bottom...原创 2018-11-26 16:20:31 · 2362 阅读 · 0 评论 -
Android Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
最近学习Google的zxing扫码,接触到Surface、Surface和Viewfindview,这里先记下Surface学习到的好东西转载:http://blog.youkuaiyun.com/pathuang68/article/details/7351317一、SurfaceSurface就是“表面”的意思。在SDK的文档中,对Surface的描述是这样的:“Handle onto a ...转载 2018-11-06 14:04:27 · 1134 阅读 · 0 评论 -
Android 内存 内部存储和外部存储(二)
手机是有两个内存的。6G/8G和64G/128G/256G同时出现在一个手机中,6G是指运行内存,64G是指存储内存。手机的内存,分两种,一个是存储内存,相当于电脑的硬盘,一般手机参数里超过64G的都是指这个。存储内存是可以扩展的。如果手机支持插卡就可以扩展。另一个是运行内存,相当于电脑的内存条。这个是不能扩展的。基本上都在8GB以内,部分可以达到16G或64G。我们先来考虑这样一个问...转载 2019-12-10 10:53:41 · 326 阅读 · 0 评论 -
Android 内存 内部存储和外部存储(四)
1、背景在开发过程中我们都会使用到手机的内部缓存、外部缓存。但有些开发者对这两个存储区域理解还够透彻,以为手机内置的存储卡(不可手机移除)就是内部存储,可插拔的SD卡就是外部存储,其实这些理解都是有误的。这个知识点本人也重复看过好几次,但每次看完,过一段时间就会忘记,于是打算对这一知识点做个总结,也可当成学习笔记分享给大家。主要分为下面两点进行分析:Android设备文件系统的目录...转载 2019-12-10 14:52:40 · 522 阅读 · 0 评论 -
Android 自定义View浅析
转载:https://www.cnblogs.com/itgungnir/p/6217447.html自己附加一篇:自定义View—自定义属性及引用1、概述 Android自定义View / ViewGroup的步骤大致如下:1) 自定义属性;2) 选择和设置构造方法;3) 重写onMeasure()方法;4) 重写onDraw()方法;5) 重写onLayo...转载 2018-08-30 15:37:14 · 242 阅读 · 0 评论 -
Android Android 10、11 分区存储适配组件库
先贴一下仓库的访问地址:https://github.com/xuetaotao/imagepicker,欢迎大家提意见使用和star一、存储基本知识先来看看存储区域划分:image.png其中,以下目录无需存储权限即可访问:1、App自身的内部存储2、App自身的自带外部存储-私有目录剩下的都需要申请存储权限,Android 10.0前后对于存储作用域访问的区别就体现在如何访问剩余这些目录内的文件。重点在自带外部存储之共享存储空间和其它目录详见:https://.原创 2021-08-14 14:21:08 · 694 阅读 · 1 评论 -
Android 无法解决第三方库依赖问题
最近做第三方授权登录的时候,经常需要依赖一些第三方库,但是在 build.gradle 文件中添加了如下语句后,//新浪微博认证授权implementation 'com.sina.weibo.sdk:core:4.3.0:openDefaultRelease@aar'总是出现下面的提示问题。这个问题就是依赖了一些第三方的包,但是找不到Unable to resolve de...原创 2018-10-17 11:08:57 · 1965 阅读 · 0 评论 -
Android 缩减、混淆处理和优化应用APK
本文主要就d8、Proguard、R8 等工具实现对APK代码的缩减,优化和混淆做相关记录。一、概念梳理d8:是一种命令行工具,Android Studio 和 Android Gradle 插件使用该工具来将项目的 Java 字节码编译为在 Android 设备上运行的 DEX 字节码,该工具支持您在应用的代码中使用 Java 8 语言功能。d8还作为独立工具纳入了 Android 构建工具 28.0.1 及更高版本中:android_sdk/build-tools/version/d8...原创 2021-09-07 17:00:42 · 503 阅读 · 0 评论 -
Android Cursor的一些浅显见解
一、Cursor的数据模型之前一直搞不懂Cursor的数据模型是怎么样的,等到看到下面别人博客中把Cursor比作.net中的DataReader才明白,原来是这么回事。但是没 学过.Net的同志可能还是不明白Cursor是怎么一回事,怎么取它的数据,和它的数据为什么那么取。上面的表代表的是一个cursor对象。当我们用query方法查询到的是一个指向cursor对象第一行的前面一行数据,即上图中的空行。所以我们使用cursor.moveToNext()方法时,是指向cursor..转载 2021-01-21 16:41:09 · 1602 阅读 · 2 评论 -
Android 开发小工具之:注解 Annotation
Android Support 包之一的 support-annotations 是通过静态编译检测来提高代码质量的一个注解工具。里面包含了 Android 开发中常用的代码检测注解,帮助开发者提高代码质量。通过 SDK Manager 下载 Android Support Repository 后,在 Gradle 中通过如下声明来使用该注解包:dependencies {compile...转载 2018-08-15 13:46:19 · 298 阅读 · 0 评论 -
Android 代码混淆 R8与Proguard
Android Gradle插件升级至3.4.0版本之后,带来一个新特性-新一代混淆工具R8,做为D8的升级版替代Proguard;在应用压缩、应用优化方面提供更极致的体验。Gradle插件版本3.4.0之后:R8 默认处于启用状态:R8 将脱糖、压缩、混淆、优化和 dex 处理整合到了一个步骤中,从而显著提升了构建性能。 R8 是在 Android Gradle 插件 3.3.0 中引入的,对于使用插件 3.4.0 及更高版本的应用和 Android 库项目,R8 现已默认处于启用状态。下图是转载 2021-03-22 16:29:56 · 7839 阅读 · 0 评论 -
Android RecyclerView 设置item之间的间距
转载:https://www.jianshu.com/p/e372cec819dbRecyclerView没有可以直接设置间距的属性,但看了源码之后可以发现RecyclerView有个内部类ItemDecoration,可以用ItemDecoration来装饰一个item,所以继承重写ItemDecoration就可以实现间距了。我看了以下,网上很多类似的介绍,但是大多都只考虑到LinearL...转载 2018-11-21 11:00:22 · 2385 阅读 · 0 评论 -
Android Studio 常见问题小结
一、APK打包出现 AAPT2 error: check logs for details.错误 继续学习Android,打包的时候出现了AAPT2 error: check logs for details.错误,不清楚什么问题,网上找到了解决办法,分享如下,但是具体什么原因还没懂,欢迎大佬们指点一二。参考:https://blog.youkuaiyun.com/qq_33722930/...原创 2018-10-30 11:52:56 · 1165 阅读 · 0 评论 -
Android Studio Build窗口出现中文乱码问题解决
解决方法在Android Studio中双击Shift或者点击顶部全局搜索"Edit Custom VM Options"或者点击Help—>Edit Custom VM Options然后在打开的文件中添加一句-Dfile.encoding=UTF-8然后重启Android Studio转载 2020-09-14 11:44:05 · 1434 阅读 · 0 评论 -
Android 加载流程(打包与启动)
移动安全的学习离不开对Android加载流程的分析,包括Android虚拟机,Android打包,启动流程等...这篇文章 就对Android的一些基本加载进行学习。1|0Android虚拟机Android开发中接触的是与Java虚拟机类似的的Dalvik虚拟机和ART虚拟机1|1Dalvik虚拟机什么是Dalvik虚拟机Dalvik虚拟机简称Dalvik VM或者DVM,是Google专门为Android平台开发的虚拟机,它运行在Android运行库中,需要注意的是DVM并不是一.转载 2021-09-07 11:48:28 · 787 阅读 · 0 评论 -
Android 第三方登录之支付宝登录
首先,贴上支付宝官方开放平台地址和部分开发文档:蚂蚁金服开放平台开发者中心-第三方应用APP支付宝登录快速接入Android集成流程详解主要流程如下:申请开发者,身份选择系统服务商ISV,创建应用并获取APPID。秘钥生成链接:生成密钥:快速生成RSA私钥公钥 配置应用,集成并配置SDK。参考APP支付宝登录快速接入 调用接口注意:(1)这里是APP支付宝第三方登...原创 2018-09-27 16:17:48 · 5785 阅读 · 2 评论 -
Android SharedPreferences加密存储方法
这一篇是整理 Android本地数据SP加密存储的方法,也是属于APP安全范畴。主要是通过AES加密方法进行加密,对Key和Value全部加密,进一步保障数据安全方法整理如下:import android.content.Context;import android.content.SharedPreferences;import android.preference.PreferenceManager;import android.text.TextUtils;import an原创 2020-12-04 15:41:42 · 2137 阅读 · 8 评论 -
Android APP过检安全整改
一、背景说明金融类APP的安全整改,为了提高APP的安全性,达到相关机构的安全标准做的改进。先写个提纲,以后慢慢补充细节二、改动项整理 报文加解密(RSA+AES,密钥安全保存)、防重放 双向证书认证 开启混淆,应用签名检测防止二次打包 登录密码复杂度 第三方sdk初始化放在同意隐私协议之后 权限整改,隐私政策整改 APP的环境检测:模拟器/Root 本地重要信息加密存储(如SP加密存储) 业务整改(如..原创 2021-01-21 18:05:15 · 793 阅读 · 0 评论 -
Android APP隐私权限整改
一、背景简介前段时间,国内对于安卓APP隐私问题做了一波整改,我们的APP也做了一些整改,现在分块抽空整理出来吧二、整改项目1、隐私权限整改主要是针对现在市场上APP各种乱申请权限,获取用户隐私的行为,整理了一个工具类(主要参考云闪付APP的业务逻辑),如下:public class PermissionUtils { /////////////////////////////////////////////////////////////////////////原创 2021-01-21 17:53:41 · 3270 阅读 · 4 评论 -
AndroidStudio 代码报错(报红色),但可正常运行解决方法(5种方式)
目录引言一、方法一:自带清除缓存二、方法二:删除user目录下.AndroidStudio中的文件三、方法三:删除user目录下.gradle四、方法四:删除工程目录下.gradle、.idea五、方法五:如果前四种方法都不能解决你的问题,那么还有一种解决办法结束语引言最近下载了一份代码,在同事电脑上可以正常编译、显示。在我电脑上R文件就一直显示为红色,但可以编译和运行。在网上查找了各种办法,最终得以解决,这里总结一下解决办法:一、方法一:自带清除缓存点击..转载 2021-02-23 14:57:43 · 7313 阅读 · 3 评论 -
Android 搜索功能的实现
现在很多的app中都有搜索的功能。也就是说搜索栏下面有一个列表,列表中放的内容可能是游戏,也有可能是其他的内容。这时候,我们可以在搜索框中输入你想要搜索的内容,这时候,下面的列表就会出现你想要的内容。别担心,实现起来不难,下面是关键的步骤:搜索框及列表界面怎么设计,我在这里就不多说了,因为重点是搜索这个功能的实现,布局界面的话,都可以在xml里面自己好好设计就行了。而我上一篇的博客就介绍了...转载 2020-03-03 15:15:47 · 7186 阅读 · 2 评论 -
Android 获取设备状态信息、Mac地址、IP地址的方法
转载自:前言在APP开发时,经常会遇到要获取手机状态信息的场景,像升级时获取版本号,像发生异常时要收集手机信息等等。有些软件还要根据Mac地址来判定当前用户以前是否登录过。下面将一一介绍获取这些手机状态信息的方法。1 通过build获取手机硬件信息运用反射获取Build信息,然后从build中得到对应字段的值。这种情况适用于获取所有的build信息。 或者直接调用Build类直接...转载 2019-12-09 14:02:19 · 1770 阅读 · 0 评论 -
Android 第三方登录之新浪微博授权登录
Android第三方登录的优点有很多,这里先简单略过,后续再补充。先写微博,其他的慢慢补充新浪微博授权登录新浪微博开放平台新浪微博Android SDK主要流程如下:这里只是写了一下程序的逻辑,前期的注册申请工作可以参考官网,或者直接点这里:新手指南/** * 微博账号登录授权流程 * 1. 集成SDK,修改主目录和主模块下面的build.gradle文件,添加...原创 2018-09-13 16:50:09 · 1100 阅读 · 0 评论 -
Android 外部存储App私有目录下照片和视频显示到相册
对于外部存储中,APP私有目录下的图片或者视频,一般情况下,系统自带相册中是不会显示的,如果想要将其显示出来,可以通过下面的方法,对于适配Android 10的分区存储也是很方便的一种选择。 Android中的存储简单展示如下:这里说的APP私有目录,也就是指最下面部分。下面是具体的方法一、辅助工具类package com.jlpay.partner.utils;import android.content.ContentValues;impor...转载 2020-06-24 14:01:34 · 3724 阅读 · 1 评论 -
Android11 版本适配方案整理
最近在适配 Android 10.0的过程中,简单看了下 Android 11的版本变动情况,遇到了一些问题,觉得需要做下整理,这里仅整理 存储机制相关的更新:一、Android 11中的隐私权先附上几篇不错的手册文章吧:Android11 开发者手册 Android 11 中的存储机制更新Android 存储用例和最佳做法访问共享存储空间中的媒体文件Android11 最全适配实践指南Android 11 应用兼容性适配Android11(R)新特性梳理说正文,..原创 2021-01-26 19:21:07 · 6655 阅读 · 0 评论 -
Android 图片压缩详解
一、Android中图片的色彩模式Android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存大小计算方式:图片宽度 x 图片高度 x 单位像素占用的字节数以下是图片的压缩格式:其中,A代表透明度;R代表红色;G代表绿色;B代表蓝色。ALPHA_8表示8位Alpha位图,即A=8,一个像素点占用1个字节,它没有颜色,只有透明度ARGB_4444 @Deprecated表示16位ARGB位图,即A=4,R=4,G=.原创 2020-06-30 19:50:06 · 3105 阅读 · 2 评论 -
Android 几种常用的定时器和延时方法
通过实际项目的练习,掌握了几种android基本定时器和延时的用法,这里总结一下作为自己的收获,下面列出的是比较简洁的模式,方便简单地在程序中直接调用。一、三种常用的定时器1.Handler类的postDelayed方法: 1 Handler mHandler = new Handler(); 2 Runnable r...转载 2019-07-08 10:25:37 · 642 阅读 · 0 评论 -
Android11 最全适配实践指南
一、前言没错!Android 11 (version 30,Android R)正式发布了!看到这个新闻我知道我不能再拖了,再不好好准备好迎接Android 11的到来,到时候迎接我的就是客户的指责,甚至老板的一封休书了????。今天就和大家一起看看Android 11到底改了些什么,以及最重要的,我们需要怎么适配?targetversion 不改到 30,是不是就不用适配了呢?以下我分为两部分讲述,分别是 以Android 11为目标版本的应用 (targetSdkVersion>=30才转载 2021-01-21 15:59:44 · 2702 阅读 · 0 评论 -
Android Serializable和Parcelable序列化对象详解
转载:https://www.cnblogs.com/yezhennan/p/5527506.html学习内容:1.序列化的目的2.Android中序列化的两种方式3.Parcelable与Serializable的性能比较4.Android中如何使用Parcelable进行序列化操作5.Parcelable的工作原理6.相关实例 1.序列化的目的 (1)...转载 2018-10-10 11:32:45 · 168 阅读 · 0 评论 -
Android 10、11 存储完全适配!(建议收藏)
1、存储基本知识先来看看存储区域划分:image.png其中,以下目录无需存储权限即可访问:1、App自身的内部存储2、App自身的自带外部存储-私有目录剩下的都需要申请存储权限,Android 10.0前后对于存储作用域访问的区别就体现在如何访问剩余这些目录内的文件。重点在自带外部存储之共享存储空间和其它目录2、Android 10.0 之前访问方式继续细分为Android 6.0 之前和之后。Android 6.0 之前访问方式Android 6.0转载 2021-08-14 14:40:53 · 5993 阅读 · 6 评论 -
Android RecyclerView点击事件实现的几种方式
因为经常会用到RecyclerView,今天在这里总结一下实现RecyclerView点击事件的实现方法一、通过接口回调的方式实现 1. 首先定义一个点击的接口(Recyclerview自身不带有点击事件的回调)public interface OnRecyItemClickListener{ void onClick(View view, int position)...原创 2018-11-21 10:29:42 · 4649 阅读 · 0 评论 -
Android 内存 内部存储和外部存储(一)
转载自:https://www.cnblogs.com/slyfox/p/9584388.htmlhttps://blog.youkuaiyun.com/u012702547/article/details/50269639https://blog.youkuaiyun.com/u010937230/article/details/73303034https://developer.android.com/guide...转载 2019-12-09 20:02:19 · 574 阅读 · 0 评论 -
Android APP字体随系统字体调整造成界面布局混乱问题解决方案
遇到的问题:当用户调整系统字体大小的时候,APP的字体一般也都会跟随改变,进而导致某些界面布局排版混乱。下面先说一下关于sp单位的理解sp单位除了受屏幕密度影响外,还受到用户的字体大小影响,通常情况下,建议使用sp来跟随用户字体大小设置。除非一些特殊的情况,不想跟随系统字体变化的,可以使用dp”。按照这么说,布局宽高固定写死的地方应该统一用dp显示字体,因为一旦用户在设置中调大字体,宽高为固定值的布局显示就乱了。解决方案:1. 强制实现所有界面都的字体都不随系统字体大小而改变,在工程..原创 2020-09-02 20:10:26 · 5248 阅读 · 0 评论 -
Android ConstraintLayout约束布局学习
1.介绍约束布局ConstraintLayout 是一个ViewGroup,是Android 8 新增的布局方式,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件,是借鉴IOS所支持的约束的布局。从功能上讲,约束布局相当于相对布局的改进,谷歌官方也是推荐用约束布局来代替相对布局。ConstraintLayout 官方文档2.为什么要用ConstraintLayout在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计转载 2021-03-04 19:45:50 · 574 阅读 · 1 评论