Android
文章平均质量分 78
四级五次郎
不负韶华,砥砺前行
展开
-
Gradle在Android Studio中的应用技巧
Gradle是Android Studio标配的构建系统,想要熟练使用Android Studio进行Android开发,必须对Gradle有一定程度的认知。这里主要是说一下关于Gradle的使用技巧共享变量的定义Gradle开发中会涉及到很多配置,比如不同module中都要配置compileSdkVersion、buildToolsVersion等变量值,我们把这些公共的配置项称为共享变量。一般原创 2017-07-06 14:50:33 · 446 阅读 · 0 评论 -
注解在Android中的应用
《Android 高级进阶》读书笔记 Android 开发中在很多地方都用到了注解,注解在Android中的作用不可谓不大。Android Support Library甚至专门推出了一个支持库Support Annotation,之前的一篇文章Android进阶Support Annotation Library 使用详解 ,基本把注解说的差不多了,这次咱们整体的说下注解。那什么是注解呢?原创 2017-07-07 16:12:17 · 682 阅读 · 0 评论 -
简析TCP的三次握手与四次挥手
TCP是什么?具体的关于TCP是什么,我不打算详细的说了;当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续。它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七层模型: 我们捡重点看几个:链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他转载 2017-08-02 18:18:58 · 819 阅读 · 2 评论 -
Android View的绘制流程
View的绘制和事件处理是两个重要的主题, 之前说过View的事件分发处理机制,如果还不太清楚的同学可以先看一下Android Touch事件的传递机制,这里不再多说了。对于一些系统自带控件实现不了的功能,就需要我们自己去自己绘制,前提是你需要熟练掌握View的绘制流程。1 在正式说View的绘制流程之前,先了解一下Android的UI管理系统的层级关系。尊重作者 android的窗口机制分析——原创 2017-06-27 16:32:35 · 2238 阅读 · 2 评论 -
Android Touch事件的传递机制
android中会经常遇到多个View ViewGroup嵌套的问题,如果想要快速的解决这种问题,就需要对View的事件传递有较深入的理解。一次完整的事件传递机制,主要是三个阶段,分别是事件的分发,拦截和消费。1.1 触摸事件的主要类型 触摸事件对应的是MotionEvent类,事件的类型主要有如下三种。ACTION_DOWN:用户手指按下的操作,一个按下操作标志着一次触摸事件的开始。ACT原创 2017-06-14 14:20:38 · 1164 阅读 · 4 评论 -
书写简洁规范的代码
写出简洁规范的代码对于开发者而言非常重要,它体现了开发者自己的专业性和技术水平,而且能够赢得别人的赞赏。对团队来说,团队成员遵循统一的代码规范,能够更好地维护代码库的稳定和谐。Android是基于Java语言进行开发的,因此说到编码规范,首先需要遵循Java的编码规范。 - 1 Java编码规范1.1 源代码文件的定义源代码文件以文件内容中的最顶层的Java类命名,而且大小写敏感,文件扩展名为 .原创 2017-07-21 18:18:07 · 9079 阅读 · 1 评论 -
Android6.0运行时权限
Android6.0系统中引用了运行时权限功能,从而更好的保护了用户的安全和隐私。哪些是Android列出的危险权限 权限组名 权限名 CALENDAR READ_CALENDAR / WRITE_CALENDAR CAMERA CAMERA CONTACTS READ_CONTACTS / WRITE_CONTACTS / GET_LOCATION LOCATI原创 2017-08-16 00:24:21 · 421 阅读 · 0 评论 -
基于开源项目搭建属于自己的技术堆栈
在技术面试的时候肯定都会问到使用了哪些第三方框架,为什么使用它而不用其他的。身边朋友就有这样的亲身经历: 面试官:你们项目中加载图片都是用的什么框架? 面试者:Glide啊(内心窃喜) 面试官:为什么使用Glide而不用其他的? 面试者:(沉默10s),Glide好啊,我比较喜欢。(内心不安) 面试官:……(能不能好好聊天了)这篇博文主要就是针对平常使用到的框架做原创 2017-08-31 15:56:01 · 1956 阅读 · 0 评论 -
Glide与CircleImageView加载圆形图片的问题
最近在项目中遇到了一个奇怪的问题,Glide和CircleImageView一起使用加载圆形头像,发现第一次死活都加载出来,出来的是一张占位图,当你刷新的时候或者第二次进入的时候才能加载出来。究其原因,CircleImageView 把位置占了。这时候我们有如下4种解决方案,不管是哪一种都是可以解决的(亲测可行)。1. 不使用占位符注释掉这两句代码即可。 .placeholder(R.原创 2017-09-05 18:48:01 · 636 阅读 · 0 评论 -
64K方法数限制解决办法
随着业务逻辑越来越多,业务模块也越来越大,不可避免会遇到64K方法数的限制。最直观的表现就是编译报错:较早版本的编译系统中,错误内容如下:Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536较新版本的编译系统中,错误内容如下:trouble writing outp原创 2017-07-27 16:26:49 · 1987 阅读 · 0 评论 -
[问题解决]Android中getDrawable和getColor过时的替代方法
Android SDK 升级到 23 之后,用getDrawable()和getColor()方法就过时了,只不过当时没在意,而且也能正常运行,没报错就用。不过每天看着一条横线很不舒服,特此寻提替代方法。症状网上给的方案:谷歌推荐:原创 2017-09-22 11:32:50 · 1098 阅读 · 0 评论 -
Android Studio 项目导入的正确姿势
导入其他人的项目对于咱们开发人员来说是一个基础,可有些时候导入了10分钟20分钟甚至更久死活一直导不进来。这里就教大家一个轻松便捷的导入方法,顺便跟大家探讨一下导入程序的正确姿势。第一步,首先查看根目录的build.gradle文件拿到项目之后先不着急打开导入,咱们先查看一下根目录的build.gradle文件查看。 1. classpath ‘com.android.too...原创 2018-07-20 11:46:57 · 563 阅读 · 0 评论 -
Android 7.0 更新APK在安装时的报错 android.os.FileUriExposedException解决办法
1、在AndroidManifest.xml中添加如下代码<provider android:name="android.support.v4.content.FileProvider" android:authorities="app的包名.fileProvider" android:grantUriPermiss原创 2017-06-14 15:11:26 · 1253 阅读 · 0 评论 -
Android下载完成更新后,没有打开安装成功界面,出现闪退问题
最开始以为是android7.0权限问题,后来发现在6.0手机上也是会出现这种问题的 这是修改之前的代码:Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://xxxx.apk"), "application/vnd.android.package-archive");原创 2017-04-15 17:01:51 · 5013 阅读 · 1 评论 -
Android_数据存储
数据存储Android数据存储方式SharedPrefernces存储手机内部文件存储手机外部文件存储Sqlite数据库存储远程服务器存储SharedPreferences存储SP存储专门用来存储一些单一的小数据存储数据的类型: boolean, float, int, long, String数据保存的路径: /data/data/packageName/shared_pre原创 2016-11-10 11:53:02 · 373 阅读 · 0 评论 -
仿ios,网易,京东的搜索界面和功能
由于最新项目需要实现一个搜索功能,需求是和ios的样式相同,ios有第三方库直接引用就可以使用,而android这边全是md风格的,并不是我想要的,所以只能自己写了,如果有时间一定封装成库。首先看下效果图 首先看下需要用到的东西,1,首页搜索是一个TextView自不必说,主要是热门搜索的流式布局,但是今天的主角不是它,如果不太懂的朋友可以移步这里:[Android中常见的流式布局的使用原创 2017-04-26 16:14:26 · 4860 阅读 · 5 评论 -
Android动画机制完全解析
在Android 3.0之前的版本,我们能使用的动画类型有两种,分别是逐帧动画和补间动画;在Android3.0发布时,Android SDK又为开发者带来了更加强大灵活的属性动画,使得实现复杂的动画效果更加容易;随着时间的推进,在Android4.4中,Android SDK又为开发者带来了android.transition框架,这使得开发者可以通过一种更直观的方式定义动画效果。咱们分别来介绍下原创 2017-06-28 17:28:07 · 1044 阅读 · 0 评论 -
Android进阶Support Annotation Library 使用详解
Support Annotation Library是从Android Support Library 19.1 开始引入的一个全新的函数包,它包含一系列有用的元注解,用来帮助开发者在编译期间发现可能存在的Bug。Support Library本身也使用Annotation Library 提供的注解来完善自身的代码质量,Android Studio 提供可视化的交互以便开发者发现问题。Andro原创 2017-06-29 15:04:27 · 3440 阅读 · 1 评论 -
PX、DP和SP之间的换算
在Android开发中,尺寸换算可以说既简单又复杂,而且还比较碎,特别是屏幕适配的时候肯定会用到他们。今天就来总结一下他们三者的关系,首先说下他们都是什么。px:像素单位。最基础的图像构成元素单位 dp:与密度无关的像素,这是一个基于屏幕物理密度的抽象单位。 这里要解释一下密度的概念,密度(dpi):每英寸包含的像素个数(单位是dpi),1dp实际上相当于密度为160dpi的屏上的一个点。可否理原创 2017-06-29 18:22:41 · 1598 阅读 · 0 评论 -
ANR产生的原因及定位分析
ANR全称是Application Not Responding,意思是应用程序无响应。相信从事Android开发的肯定遇到过。ANR的直观体验是用户在操作App的过程中,感觉界面卡顿,当界面卡顿超过一定时间(一般5秒),就会出现ANR对话框。ANR对于一个应用来说是不能承受之痛,其影响并不比应用发生Crash小。ANR产生的原因只有当应用程序的UI线程响应超时才会引起ANR,超时产生原因一般有两原创 2017-07-10 15:33:45 · 2502 阅读 · 0 评论 -
Android异步处理技术
《Android 高级进阶》读书笔记 Android中,异步处理技术有很多种,常见的有Thread、AsyncTask、Handler&Looper、Executors等,在实际项目中,我们需要根据具体业务需求进行选择、一个完整的异步处理技术继承树如下:1. Thread线程是Java语言的一个概念,它是实际执行任务的基本单元,创建线程有两种方法。继承Thread类并重写run方法,语句如原创 2017-07-11 18:14:39 · 555 阅读 · 0 评论 -
Android数据序列化方案研究
数据的序列化在Android开发中占据着重要的地位,无论是在进程间通信、本地数据存储又或者是网络数据传输都离不开序列化的支持。而针对不同场景选择合适的序列化方案对于应用的性能有着极大的影响。 广义上讲,序列化是将数据结构或者对象转换成可用于存储或者传输的数据格式的过程,在序列化期间,数据结构或者对象将其状态信息写入到临时或者持久性存储区中;反序列化是将序列化过程中生成的数据还原成数据结构或者对原创 2017-07-12 14:48:06 · 1430 阅读 · 0 评论 -
Android Design Support Library使用详解(二)
上一篇文章咱们已经学习了Snackbar,TextInputLayout、TabLayout、NavigationView、FloatingActionButton这四个MD新特性布局。如果还没有看的请先看下Android Design Support Library使用详解(一),前面几个比较简单一点。废话不多说,咱们接着看MD新特性的其他控件。CoordinatorLayoutCoordina原创 2017-07-03 17:00:53 · 4814 阅读 · 0 评论 -
Android Design Support Library使用详解(一)
这里写链接内容> Design Support Library是在Google I/O 2015上发布的一个全新兼容函数库,它使得开发者可以在Android2.1(API = 7)及以上的设备中实现Material Design效果,这个函数库提供了一系列的控件,主要包括:Snackbar,Navigation View、FloatActionButton、CoordinatorLayout、Col原创 2017-06-30 16:35:21 · 1326 阅读 · 0 评论 -
Android Studio中的NDK开发
读书笔记:《Android 高级进阶》NDK简介 NDK 是 Native Developmentit的缩写,是Google在Android开发中提供的一套用于快速创建native工程的一个工具。 使用这个工具可以很方便的编写和调试JNI的代码。NDK是一系列工具的集合 NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这原创 2017-07-04 14:29:32 · 556 阅读 · 0 评论 -
In FontFamilyFont, unable to find attribute android:font的报错处理
Information:Gradle tasks [:app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources]Error:In <declare-styleable> FontFamily...原创 2018-07-20 13:53:18 · 1953 阅读 · 0 评论