![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android开发
文章平均质量分 83
luocen0926
当你还不能写出自己满意的程序时,你就不要去睡觉
展开
-
常用正则表达式大全
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。原创 2022-03-15 10:17:55 · 3972 阅读 · 0 评论 -
Unable to find method'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List' 构建错误解决办法
Unable to find method'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List'Possible causes for this unexpected error include:Gradle’sdependency cache may be corrupt (this sometime...原创 2019-10-21 16:20:52 · 267 阅读 · 0 评论 -
解决添加Butterknife8.8.1依赖后出错的问题
我们先依照如下方式配置ButterKnife:1.在Project的 build.gradle 中添加如下代码:classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'2.在app的 build.gradle 中添加如下代码:apply plugin: 'com.jakewharton.butterknife'(在顶部添...原创 2019-10-21 16:14:07 · 2087 阅读 · 0 评论 -
Git——新手入门与上传项目到远程仓库GitHub
Git概述Git:是目前世界上最先进的分布式版本控制系统,一个开源式的分布式版本控制工具。简单浅显地来说(就我个人而言),就是一个全球程序员的代码仓库集中地,每个人都可以在这里拥有一个自己的小仓库(注册一个独立的账号就可以了),你的代码可以一件一件的保存在这里,也可以分享给全球的程序猿同类们,所以即使你在本地对自己的项目随意删改(哪怕它爆炸~-~)都是可以通过Git从GitHub上传回之前提交的代原创 2018-01-18 14:23:51 · 292 阅读 · 0 评论 -
Android AIDL(接口定义语言)简单理解和基本使用方法
一、概述 AIDL意思即Android Interface Definition Language,翻过来就是Android接口定义语言,是用于定义服务端和客户端通信接口的一种描述语言,可以拿来生产IPC代码,从某种意义上说AIDL其实就是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而是据此生产的一个Interface的实例代码,AIDL其实是为了避免我们重复写代码而出原创 2018-01-17 16:55:27 · 3132 阅读 · 0 评论 -
仿QQ空间之打造个性化可拉伸头部控件
1、自定义控件 1、这里引用一个xml文件做为listview的headerView, LayoutInflater. inflate()的时候,注意最后的root为null,而不是this,以防 addHeaderView时出问题。 2、监听overScrollBy(),下拉过度时,放大mImageView。 3、监听onSc...原创 2018-02-03 14:16:41 · 434 阅读 · 0 评论 -
Dialog和PopupWindow的区别
最本质的区别就是:AlertDialog是非阻塞式对话框:AlertDialog弹出时,后台还可以做事情;而PopupWindow是阻塞式对话框:PopupWindow弹出时,程序会等待,在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。这两种区别的表现是:AlertDialog弹出时,背景是黑色的,但是当我们点击背...原创 2019-02-20 16:52:49 · 595 阅读 · 0 评论 -
Android自定义全局捕获异常并上传,实现实时收集APP崩溃crash信息
在APP上线后,可能会出现一些BUG导致了APP的闪退,用户体验就非常致命,我们一定要第一时间找到问题的所在1、我们需要自定义一个异常收集类(创建一个Thread.UncaughtExceptionHandler的继承类);2、替换掉APP本身的异常处理(在Thread.UncaughtExceptionHandler实现类中使用Thread.setDefaultUncaughtExcept...原创 2019-06-12 16:02:57 · 1190 阅读 · 0 评论 -
android中的Intent和PendingIntent的区别
1、Intent和PendingIntent的区别intent英文意思是意图,pending表示即将发生或来临的事情。 Intent是立即使用的,而PendingIntent可以等到事件发生后触发,PendingIntent可以cancel Intent在程序结束后即终止,而PendingIntent在程序结束后依然有效 PendingIntent自带Context,而I...原创 2019-08-05 10:15:06 · 233 阅读 · 0 评论 -
GitHub上制作自己的Library,直接implementation使用
平时做项目肯定用了很多别人的库,如果有一个自己的库,那逼格就高了。准备工作 建个module 2.选择Android Library,然后起个名字,然后finish3.把准备的代码贴到library中,然后上传github 这是我上传之后的代码https://github.com/zhangshangkun/GlideImageUtil-s4.发...原创 2019-08-06 16:50:22 · 1525 阅读 · 0 评论 -
封装实用的Toast工具类
1)Toast底层使用handler机制,分别post一个nShow和一个mHide来控制Toast显示还是隐藏2)Toast的视图是通过WindowManager的addView来加载的3)先通过makeText()实例化出一个Toast,然后调用toast.Show()方法,这时并不会马上显示Toast,而是会实例化一个TN变量,然后通过service.enqueueToast()将其...原创 2019-08-06 17:45:49 · 228 阅读 · 0 评论 -
Android 绘制圆形颜色背景渐变 shape
<?xml version="1.0" encoding="utf-8"?><!-- 圆形边框 + 填充 --><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:useLevel="true"> ...原创 2019-08-09 16:28:48 · 4496 阅读 · 0 评论 -
Android EventBus 的使用
1、EventBus 简介EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,Gihub地址是:EventBus。它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。1.1 三个角色Event:事件,它可以是任意类型,EventBus会根据事件类型进行全局的通知。 Subscri...原创 2019-08-21 15:37:15 · 166 阅读 · 0 评论 -
Git 不需要重复输入账号和密码
linux下方法在~/下, touch创建文件 .git-credentials touch .git-credentials用vim编辑此文件 vim .git-credentials输入内容格式 https://username:password@github.comwindows下方法在终端下执行 git config --global credentia原创 2017-12-20 16:34:02 · 1291 阅读 · 0 评论 -
Android WebView用法和WebView加载提升网页速度
前言WebView是Android里的组件,下面将全面介绍WebView的常用用法。1.简介WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。2.作用·显示和渲染Web页面·直接使用html文件(网络上或本地asset原创 2017-11-25 12:04:12 · 31030 阅读 · 4 评论 -
Android解析XML的三种方式
XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器,下面,我将一一向大家详细介绍。1. SAX解析方式SAX(Simple API for XML)解析器是一种基于事件的解析器,事件驱动的流式解析方式是,原创 2017-11-20 14:50:48 · 462 阅读 · 0 评论 -
Picasso的使用
一、Android平台图片加载库现状 目前社区主流的图片加载库有Universal Image Loader,Picasso,Volley,Fresco,Glide.二、Picasso介绍 Picasso是Square公司开源的一个Android图形缓存库,Picasso实现了图片的异步加载,并解决了Android中加载图片时常见的一些问题,它有以下特点:· 在Adap原创 2017-05-16 11:07:33 · 298 阅读 · 0 评论 -
android6.0程序在运行时申请权限
一、运行时权限的变化及特点对于6.0以下的权限及在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就要默默忍受其一些不必要的权限(比如是个app都要访问通讯录、短信等)。而在6.0以后,我们可以直接安装,当app需要我们授予不恰当的权限的时候,我们可以予以拒绝(比如:单机的象棋对战,请求访问任何权限,我都是不同意的)。当然你也原创 2017-05-18 14:38:16 · 438 阅读 · 0 评论 -
Android 开发神器系列—调试程序不再完全依赖USB数据线
做为一个多年奋战在Android 应用开发一线的程序员来说,程序调试的苦是不言而喻的,在过去的很长一段时间里,我们如果要调试Android 应用只能通过USB数据线,一头连着手机,一头联着电脑,不敢让手机离开电脑半步。 曾经有一段时间,我总是担心天天这样高强度的调试别把手机的USB口给磨坏了。也许有朋友问了,那怎么不用模拟器呢?事实上,不是不想用,而是电脑上开个模似器可能需要半天原创 2017-05-18 17:12:06 · 1812 阅读 · 0 评论 -
Android studio 中如何删除无用资源?
1、在Anaylze中选择Run Inspection by Name...2、在点击之后弹出的窗口输入unused resources后,回车3、根据情况,选择情况,选择整个项目、指定Module...,也可以自己过滤。点击ok4、得到结果,里面全是没用的文件。可以一个个删,也可以一次性删除原创 2017-06-04 14:25:34 · 3181 阅读 · 0 评论 -
Retrofit用法详解
Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码详见OkHttp Github。一、首先先来看一个完整Get请求是如何实现:1、创建业务请求接口,具体代码如下: public interface原创 2017-06-09 17:22:59 · 424 阅读 · 0 评论 -
Android6.0/7.0新特性
· 运行时权限系统6.0 现在Android把权限分为了敏感权限与非敏感权限,对于非敏感权限,开发者同样是在AndroidMainifest中进行权限申请,这 些权限会在android App安装的时候显示出来,与现在一样,而敏感权限,则会通过Dialog的方式在使用时弹出· Notification && Notification Menu原创 2017-06-10 15:08:59 · 507 阅读 · 0 评论 -
Android自定义view之Measure
1、整个View树的绘图流程是在ViewRootImpl类的performTraversals()方法(这个方法巨长)开始的,该函数做的执行过程主要是根据之前设置的状态,判断是否重新计算视图大小(measure)、是否重新放置视图的位置(layout)、以及是否重绘 (draw),其核心也就是通过判断来选择顺序执行这三个方法中的哪个,如下:private void perfor原创 2017-06-13 16:12:52 · 497 阅读 · 0 评论 -
SmartRefreshLayout下拉刷新上拉加载框架
Android智能下拉刷新框架,支持越界回弹,集成了几十种炫酷的Header和 Footer。 RefreshLayout,OverScroll。特点功能:支持所有的 View(AbsListView、RecyclerView、WebView....View) 和多层嵌套的视图结构支持自定义并且已经集成了很多炫酷的 Header 和 Footer (图).支持和 ListVie原创 2017-09-04 17:13:07 · 2482 阅读 · 0 评论 -
Android-activity的生命周期
一、初识Activity在日常应用中Activity是与用户交互的接口,它提供了一个用户完成相关操作的窗口。当我们在开发中创建Activity后,通过调用setContentView(View)方法来给该Activity指定一个布局界面,而这个界面就是提供给用户交互的接口。Android系统中是通过Activity栈的方式来管理Activity的,而Activity自身则是通过生命周期的方原创 2017-09-14 11:22:56 · 275 阅读 · 0 评论 -
Android-Handler机制详解
1、handler是什么? handler是更新UI界面的机制,也是消息处理的机制,我们可以发送消息,也可以处理消息2、为什么要有Handler? Android在设计的时候,封装了一套消息创建、传递、处理机制,如果不遵循这样的机制就没办法更新UI信息,就会抛出异常。3、handler怎么用? 1、post(Ru原创 2017-09-14 11:36:23 · 329 阅读 · 0 评论 -
Android Studio工程引用第三方so文件
应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。在Android 系统上,每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64。jar包存放到工程的libs目录下。原创 2017-11-09 16:50:13 · 1919 阅读 · 0 评论 -
Android 加载PDF文件
今天按项目要求找了一个android的PDF控件,各种操作效果都非常好,在这里和大家分享一下。用法很简单:1.在build.gradle里面添加依赖compile 'com.github.barteksc:android-pdf-viewer:2.8.0'2.然后就可以直接在layout里面使用了<com.github.barteksc.pdfviewer.P...原创 2017-11-03 16:22:53 · 1442 阅读 · 0 评论 -
Android Butterknife 使用
ButterKnife是AndroidStudio中一个应用非常广的插件,有着艺术般的体验,深受广大开发者的喜爱,只需要3步即可配置成功,想要抛弃findViewById请跟我来。1、首先先要下载ButterKnife2、安装好插件之后,在project中的build.gradle中的dependencies中添加: classpath ‘com.neenbedank原创 2017-05-11 10:04:57 · 290 阅读 · 0 评论