Android
文章平均质量分 87
yx1166
每天进步一点点
展开
-
Android 单例模式
为什么要用单例模式?单例模式的定义:“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”Java中单例模式定义;“一个类有且仅有一个实例,并且自行实例化向整个系统提供该实例。”对于系统中的某些类来说,只有一个实例很重要。例如,记录最新的短信和最新的通话记录的时候;或者,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只有有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID生成器。如在Windows OS 中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一转载 2020-12-21 17:54:32 · 212 阅读 · 0 评论 -
RecyclerView IndexOutOfBoundsException, Inconsistency detected. Invalid view holder adapter pos 解决方案
为什么会抛出这个异常抛出这种异常的原因不外乎以下几种:一般是在用户滑动列表时又点击刷新列表(或请求列表数据)发生此异常 UI线程正在取adapter数据,后台线程在更新adapter数据。一言以蔽之,adapter的数据集在外部、内部不一致时,会抛出此异常。解决方案对于这种情况,有一部分人是这样解决的:自己写一个继承LinearLayoutManager的包装类,在onLayoutChildren()方法里try-catch捕获该异常@Overridepublic void on原创 2020-11-30 11:40:51 · 660 阅读 · 0 评论 -
Android 解决大字体模式下页面变形的问题
有一些APP会有中老年人使用,他们视力不佳,习惯性的设置大字体模式。然而,在大字体模式下,有些页面会变形。我经过考虑之后,采用【设计】+【技术】的方式解决此问题。技术方面在android端,影响大字体模式的因素有2个,分别是【字体】、【显示模式】。即使没有改变字体,通过调整显示模式,也可以让页面的字体变大。本文只能解决放大【字体】导致的大字体模式,【显示模式】还没有找到合适的解决办法。如果有读者知道如何解决,请赐教。放大【字体】的大字体模式解决办法在Activity页面,通过获取系统的字体放原创 2020-10-28 16:40:18 · 972 阅读 · 0 评论 -
RecyclerView刷新异常java.lang.IndexOutOfBoundsException
问题描述recyclerView在滑动时更新adapter数据,抛出异常日志如下:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{13e04da position=8 id=-1, oldPos=-1, pLpos:-...原创 2020-03-11 14:05:02 · 1490 阅读 · 1 评论 -
RecyclerView添加Header和Footer
本文转载地址:https://www.jianshu.com/p/e9dfb7167f87RecyclerView虽然作为ListView的替代者有着较好的性能提升,但是ListView的一些常用功能却没有提供,比如我们平时会经常用到的addHeaderView,addFooterView,既然RecyclerView没有提供这个方法,我们应该如何为列表添加头部和底部呢?通过看ListView...转载 2020-02-19 16:12:28 · 459 阅读 · 0 评论 -
Android 7.0以上(包含8.0), popupWindow弹窗位置异常, 解决方案
本文转载地址:https://blog.csdn.net/zhihui_520/article/details/79097161终极解决方案(7.0, 7.1, 8.0)/**** @param pw popupWindow* @param anchor v* @param xoff x轴偏移* @param yoff y轴偏移*/publi...转载 2019-12-27 10:32:41 · 130 阅读 · 0 评论 -
使用DrawerLayout和SlidingMenu分别实现侧滑菜单、以及AS使用SlidingMenu第三方库的步骤
本文转载地址:https://blog.csdn.net/Jsagacity/article/details/80362258最近有需求要实现一下侧滑菜单的功能,记录一下笔记。首先实现侧滑菜单有很多方法,这里演示第三方库SlidingMenu的分别实现,没有过多的解释,直接演示源码。布局right_menu_main.xml:<?xml version="1.0" encod...转载 2019-12-26 14:14:44 · 185 阅读 · 0 评论 -
android studio SVN 使用
本文转载地址:https://blog.csdn.net/qq_42932298/article/details/87087136如何安装配置SVN请直接参考《SVN在Android Studio中的配置》http://www.cnblogs.com/songmeng/p/4389446.html如何使用SVN本文主要参考了《AndroidStudio配置SVN以及使用代码管理》h...转载 2019-12-16 16:54:27 · 128 阅读 · 0 评论 -
android 8.0 行为变更
Android 8.0 除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更。本文重点介绍您应该了解并在开发应用时加以考虑的一些主要变更。其中大部分变更会影响所有应用,而不论应用针对的是何种版本的 Android。不过,有几项变更仅影响针对 Android 8.0 的应用。为清楚起见,本页面分为两个部分:针对所有 API 级别的应用和针对 Android 8.0 的应用。针对所有AP...原创 2018-05-22 09:52:13 · 331 阅读 · 0 评论 -
android 8.0 新功能特性
Android 8.0 为用户和开发者引入多种新功能。本文重点介绍面向开发者的一部分新功能。请务必查阅 android 8.0 行为变更以了解平台变更可能影响您的应用的领域。用户体验自动调整TextView的大小Android 8.0 允许您根据 TextView 的大小自动设置文本展开或收缩的大小。这意味着,在不同屏幕上优化文本大小或者优化包含动态内容的文本大小比以往简单多了。如需了解有关如何在...原创 2018-05-22 10:07:22 · 378 阅读 · 0 评论 -
AndroidStudio Build过程解析
概述AndroidStudio点击build按钮后,AndroidStudio就会编译整个项目,并将apk安装到手机上,这个过程就是Android工程编译打包过程。下图为主要过程:APK构建流程下图是谷歌官网给出的一个典型的APK构建流程。主要有两个过程:编译过程。输入是本工程的文件以及依赖的各种库文件,输出是dex文件和编译后的资源文件。打包过程。配合Keystore对上述的输出进行签名对齐,生...原创 2018-06-25 22:20:09 · 4254 阅读 · 0 评论 -
解决错误:Plugin with id 'com.android.application' not found
本文转载地址:https://blog.csdn.net/qq_26819733/article/details/50935632Error:(1, 0) Plugin with id 'com.android.application' not found.Open File这个错误是build.gradle造成的,我们打开文件打开报错的项目的build.gradle,看看有没...转载 2018-08-29 10:42:02 · 143762 阅读 · 14 评论 -
Android Studio长时间停留Building "Project Name" Gradle project info的解决方法
本文转载地址:https://blog.csdn.net/u010999809/article/details/77610536 问题描述:创建好一个Android项目后,Android Studio长时间停留在Building [Project Name] Gradle project info画面不动。原因:此时Android Studio在下载gradle-X.XX-al...转载 2018-08-29 10:44:47 · 182 阅读 · 0 评论 -
android 9 所有应用的行为变更 和 以API28为目标的应用行为变更
Android 9(API 级别 28)向 Android 系统引入了多项变更。所有应用的行为变更当应用在 Android 9 平台上运行时,以下行为变更将影响所有应用,无论这些应用以哪个 API 级别为目标。 所有开发者都应查看这些变更,并修改其应用以正确支持这些变更(如果适用)。电源管理Android 9 引入了新功能以改善设备电源管理。 这些变更连同 Android 9 之前...原创 2018-11-29 09:06:59 · 583 阅读 · 0 评论 -
android 9.0 新功能特性
Android 9.0 为用户和开发者引入多种新功能。本文重点介绍面向开发者的一部分新功能。Wi-Fi RTT 室内定位Android 9 添加了对 IEEE 802.11mc Wi-Fi 协议(也称为 Wi-Fi Round-Trip-Time (RTT))的平台支持。在运行android 9 和此硬件的设备下,应用可以使用 RTT API 来测量与附近支持 RTT 的 Wi-Fi 接入...原创 2018-11-28 09:05:58 · 976 阅读 · 0 评论 -
android 6.0与7.0 行为变更
6.0 -API 23 行为变更运行时权限此版本引入了一种新的权限模式,如今,用户可直接在运行时管理应用权限。这种模式让用户能够更好地了解和控制权限,同时为应用开发者精简了安装和自动更新过程。用户可为所安装的各个应用分别授予或撤销权限。对于以 Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否已被授予权限,请调用新增的 chec...原创 2018-05-21 15:25:19 · 533 阅读 · 0 评论 -
android 7.0 FileProvider
android 7.0及以上版本,应用私有目录被限制访问。此设置可防止私有文件的元数据泄漏,如它们的大小或存在性。此权限更改有多重副作用:比如 ,file:///URI可能给接收器留下无法访问的路径,推荐使用FileProvider。FileProvider介绍FileProvider是ContentProvider的一个特殊子类,通过content://代替file:///,有助于安全地共享与应...原创 2018-05-25 11:46:22 · 778 阅读 · 0 评论 -
android 多点触摸交互处理
今天介绍一下多点触摸交互处理,过程中会有几个小demo。首先,我为什么要有学习这块呢?因为他涉及到图片的缩放啊,类似的一些操作,现在的app都必不可少。要想做图片的缩放,首先要知道手指在哪里。 第一,如何获取手指在滑动中的坐标? 这个可以通过view的onTouchListener实现,在过程中实现,一定一定要注意,把onTouch的方法返回true,默认是false的,因为fa转载 2016-10-16 20:02:50 · 378 阅读 · 0 评论 -
android Data Binding Library
本文档介绍了如何使用数据绑定库来编写声明性布局,并最大限度地减少绑定应用程序逻辑和布局所需的粘贴代码。数据绑定库提供了灵活性和广泛的兼容性 - 它是一个支持库,因此您可以将其与所有Android平台版本一起使用到Android 2.1(API级别为7+).要使用数据绑定,需要Android Plugin for Gradle 1.5.0-alpha1或更高版本。建立环境要开原创 2017-05-12 19:50:29 · 236 阅读 · 0 评论 -
android 6.0 关于定位的那些坑
今天我们的客户反应一台android设备获取不到定位,我立刻乘车到客户公司调查,原因是android系统的定位服务被关闭了。 针对此事件,我查阅了谷歌文档。定位服务,是android 6.0及以上系统才有功能。 定位服务简介:通常将各种不同的定位技术称为位置服务或定位服务。这种服务是通过电信运营商的无线电通信网络(如GSM网、CSMA网等)或外部定位方式(如GPS)来实转载 2017-07-07 15:18:02 · 4255 阅读 · 0 评论 -
Android Studio 打包apk后应用未安装
本文转载地址 http://blog.csdn.net/sinat_14849739/article/details/76383281前言Android 要求所有 APK 必须先使用证书进行数字签署,然后才能安装。当然这么做的原因是为了保证APK的唯一性,安全性。本文主要介绍在android Studio2.3+打包apk后应用未安装的解决办法。Android St转载 2017-08-16 16:58:10 · 14322 阅读 · 0 评论 -
自定义View系列:广告倒计时View
本文转载地址:http://www.jianshu.com/p/3db73ba78882今天打开迅雷手机客户端准备看片的时候(相信大多数男性同胞们也喜欢看片吧,还有女同胞们),无意间发现这个自定义View,感觉很好看的,实现起来也不麻烦,就尝试着模仿了一下,花了一天,最后终于搞出来了。因为技术比较菜,所以时间有点长,总之慢慢来吧。迅雷截图自定义View效果图转载 2017-08-20 22:25:50 · 251 阅读 · 0 评论 -
android Retrofit 注意事项
1、在Retrofit使用中,获取服务器数据可能会出现以下错误:org.json.JSONException: End of input at character 0 of原代码如下:@Override public void onResponse(Call call, Response response) throws IOException {转载 2017-09-26 11:20:24 · 317 阅读 · 0 评论 -
adnroid组件化开发实战
1、为什么需要组件、插件?随着app版本升级迭代,需求增加和删减,代码量逐步变大,对新功能的测试逐渐复杂,耦合度高,复用性低,组件化旨在解决此类问题。2、概念组件化---可分为模块组件和通用组件,这2个组件又可分为业务组件和ui组件。比如下拉刷新就是1个ui组件,很多页面都可以用;登录模块是很多业务或项目都有的,理解为是1个业务组件。插件化---将1个apk划分为不同的apk,比如转载 2017-09-11 21:26:32 · 197 阅读 · 0 评论 -
Android Studio项目精简结构,瘦体储存
本文转载地址:http://blog.csdn.net/shareye1992/article/details/50855403 之前项目文件要存档,整体文件大概有80多M,好大啊,存储起来太浪费空间了,于是想如何将项目文件处理的越小越好。 在技术群里问,大家也明确的没有答复。他们说他们的项目有几百兆的,我擦,好恐怖。虽然这么来说我的算是体积小的了,但转载 2017-10-30 09:21:47 · 577 阅读 · 0 评论 -
sourcetree 忽略文件夹
本文转载地址:http://www.ifeegoo.com/git-code-management-dot-gitignore-file-has-no-effect-solution.html在用 Git 进行代码管理的过程中,我们会发现后添加进去的 .gitignore 文件,或者是中途修改了 .gitignore 文件后,.gitignore 文件没有生效,我们需要通过清除 t转载 2017-10-30 18:03:16 · 8929 阅读 · 0 评论 -
解决AndroidStudio 导入项目在 Building gradle project info 一直卡住
本文转载地址:http://blog.csdn.net/yyh352091626/article/details/51490976Android Studio导入项目的时候,一直卡在Building gradle project info这一步,主要原因还是因为被墙的结果。gradle官网虽然可以访问,但是速度连蜗牛都赶不上...解决办法主要有两种,一是直接下载grad转载 2017-10-31 15:29:13 · 289 阅读 · 0 评论 -
使用Gson解析json在打包混淆时出错的解决方法
本人转载地址:http://blog.csdn.net/u013224148/article/details/41146387解决android使用gson解析json字符串,并使用混淆编译方式打包apk遇到的问题方法一:Gson gson = new Gson();// 将json格式字符串转化为ListType listType = new TypeToken>()转载 2017-11-10 09:42:04 · 610 阅读 · 0 评论 -
Baas后端云服务
什么是Baas?Baas,为移动应用开发者提供整合云后端的边界服务。既有移动端的baas,也有web端的baas。这里主要介绍移动端的baas。高效的服务器数据存储,完善的移动后段云服务。有哪些baas服务?国外的stackmob,国内的bmob。bmob的特点及优势有哪些?基于bmob任何移动开发者都可以开发一个app。数据存储和处理均交由bmob后段云处理。使用bomb几乎能免去所有服务器端编原创 2018-01-08 20:40:24 · 663 阅读 · 0 评论 -
android 屏幕的基本知识
本文转载地址:https://www.jianshu.com/p/5b7c01e579ff一、简介首先要说的是,Android的碎片化的问题非常严重。因为 Android 厂商非常多,设备非常多,产生了各种各样的分辨率。为了解决碎片化的问题,Android 开发文档中定义了 dp,sp 等新的单位二、屏幕的基本知识mm:millmeters 毫米,长度单位in:inches 英寸,长度单位,屏幕物...转载 2018-02-23 15:57:31 · 269 阅读 · 0 评论 -
android 刘海屏适配方法
背景自从iphone x发布后,各大厂商也发布了类似的刘海屏手机(“顶部屏幕凹槽设计”),开发者应该如何适配呢?原理为什么会有刘海屏?因为大家有自拍的需求,需要摄像头前置,除了摄像头前置外,刘海屏上还有一些其他的传感器,所以不同厂商的刘海屏长度也不相同。刘海屏是如何实现的?第一,遵循谷歌P版本的官方标准实现方式,例如,华为P20。第二,其他自定义实现方式。例如,VIVO X21 , OPPO R1...原创 2018-05-21 11:17:39 · 4419 阅读 · 0 评论 -
android 正则表达式
整理一下正则表达式,以后就不用百度找了。 /** * 验证是否为 数字 和 字母 组合 * 返回值为true,代表是2种组合。false,代表不是这2种组合 * @param res * @return */ public static boolean isHaveEnligshAndNumber(String res) { String reg = ".*[原创 2016-07-04 10:22:13 · 250 阅读 · 0 评论