![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【Android 进阶】
徐昊Xiho
主要从事Android 开发,熟悉Java Web,热爱互联网,乐于分享,对技术充满好奇及热情,胆大心细。
展开
-
Android 5.1 Settings源码简要分析
转载请注明出处,谢谢~http://blog.csdn.net/u011974987/article/details/51004854;概述:先声明:本人工作快两年了,仍是菜鸟级别的,惭愧啊!以前遇到好多知识点都没有记录下来,感觉挺可惜的,现在有机会接触Android 源码。我们一个Android组的搞Setting,我觉得是得写得东西,毕竟才接触,现在只能看一段时间代码,就先记录下一些收获吧,说原创 2016-03-29 12:36:00 · 7550 阅读 · 2 评论 -
Android RxJava 的详解(转)
前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: R原创 2016-01-28 00:06:08 · 732 阅读 · 0 评论 -
Android WIFI开发、扫描、连接和密码验证
转载请标明出处: http://blog.csdn.net/u011974987/article/details/50551580; 本文出自:【Xiho的博客】网上关于如何用代码设置wifi的文章一搜一大堆,我在此就不再添乱了,我就试着给大家谈一谈我遇到的问题吧。首先,我在做有系统定制某App的wifi模块的项目需求时候,系统默认在出厂设置的时候wifi 是关闭的,当打开连接wi原创 2016-01-20 23:24:42 · 15228 阅读 · 10 评论 -
Android WifiManager 中的常量
转载请标明出处: http://blog.csdn.net/u011974987/article/details/50547961; 本文出自:【Xiho的博客】首先网上有关Wifi模块的博文非常多,大概原理都是一样的,下面就写出一些常量,ACTION_PICK_WIFI_NETWORK Activity动作:选择一个WI-FI网络连接。 ERROR_AUTHENTICATIN原创 2016-01-20 13:38:31 · 1875 阅读 · 0 评论 -
Android Eclipse 修改默认查看图片的打开方式
1、设置整个eclipse里面的图片打开类型: window --> preferences --> General --> Editors --> File Associations 选择相应的文件后缀名后下面会出现可选打开方式. 选择自己想要的点击右边"Default" --> OK,我当时怎么也没看到图片查看的工具,后来才发现有一个 个工具可以打开,原来原创 2016-01-13 14:56:10 · 4671 阅读 · 0 评论 -
Android Provision(开机向导setupwizard程序)
转载请标明出处: http://blog.csdn.net/u011974987/article/details/50502769; 本文出自:【Xiho的博客】先来说说我为什么写下这篇文章,最近再在一个App,就相当于Android系统中 Provison.apk 的作用,可能很多朋友都不知道有这个APK 的存在。它的主要作用是作为开机引导用户进行一些基本设置。但是在原生的 an原创 2016-01-12 11:14:12 · 22648 阅读 · 6 评论 -
Android 中实现5.0按钮水波纹反馈效果
自从android L(android 5.0)出来了, 在界面上有了很大的改动,变得扁平化了,很多控件增加了不错的效果,相信大家对view的点击出现会波纹效果都有所体验吧,点击一个view,然后一个水波纹就会从点击处扩散开来。首先,先说下L上的实现,这种波纹效果,L上提供了一种动画,叫做Reveal效果,其底层是通过拿到view的canvas然后不断刷新view来完成的,这种效果需要view的支原创 2015-12-04 16:42:28 · 3302 阅读 · 2 评论 -
Volley框架 以及 设置request超时时间
Volley提供了优美的框架,使android程序网络访问更容易、更快。Volley抽象实现了底层的HTTP Client库,我们不需关注HTTP Client细节,专注于写出更加漂亮、干净的RESTful HTTP请求。Volley请求会异步执行,不阻挡主线程。Volley提供的功能封装了异步的RESTful请求API一个优雅and稳健的请求队列一个可扩展的架构,转载 2015-04-27 10:16:23 · 1645 阅读 · 0 评论 -
Android 动态加载技术简单易懂的介绍方式
基本信息 Author:kaedeaGitHub:android-dynamical-loading我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装APK就能升级应用的功能,这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时如果也可以快速修复一些线上的BUG。这种技术并不是常转载 2016-12-07 22:43:56 · 1122 阅读 · 1 评论 -
Android 网络请求库Retrofit简单使用
载请标明出处: http://blog.csdn.net/u011974987/article/details/50895633; 什么是 Retrofit ?Retrofit 是一套 RESTful 架构的 Android(Java) 客户端实现,基于注解,提供 JSON to POJO(Plain Ordinary Java Object ,简单 Java 对象),POJO to JSON,网原创 2016-03-15 13:19:16 · 8401 阅读 · 12 评论 -
基于Hexo+GitHub Pages 搭建博客详细教程
摘要 :这是一篇有关如何使用Github Pages和Hexo搭建自己独立博客的详尽教程,里面介绍了如何使用和配置Hexo框架,如何将Hexo部署到自己的Github项目中,域名注册,以及域名的绑定等功能。前言:就在一个多月前,我经过百般折腾花了三天时间搭建了一个属于自己的博客,我觉得还是很有必要把整个过程写下来,作为以后的备用,并且还能分享出来供大家学习使用,作为一个程序猿,或者希望在程序猿的道路原创 2016-05-06 17:13:55 · 12627 阅读 · 7 评论 -
Android 系统锁屏实现固件升级动画
前言在Android的开发过程中,有时候会有一些需求,实现一个类似锁屏的功能,我们经常会使用的一些悬浮窗效果或者弹出界面霸占整个手机屏幕,禁止用户交互,比如:手机的虚拟导航菜单屏蔽掉,状态栏禁止下拉或隐藏,原因就是用户可以借助下拉状态栏跳出程序回到桌面,如何屏蔽虚拟导航菜单栏和禁止下拉状态栏呢?Android 没有提供API 让我们来调用,只有查看源码, 利用Java 的反射机制来屏蔽,结果效果不怎原创 2017-02-28 13:17:25 · 1858 阅读 · 0 评论 -
Android 虚拟按键 Recent键屏蔽(隐藏)
最近做项目碰到一个需求,把那个Android 手机里面平板的虚拟 RecentApplication 键给隐藏掉,(我自己搞了好久,一直把他当成菜单键,看过源码的朋友就不要说了,O(∩_∩)O哈哈~)!我在这里说下吧:Android 4.0 桌面底部状态栏分为两个部分:左边是三个导航键:从左置右依次是:返回键 ,Home键和RecentApplication键,就是查看最近打开的所有程序,原创 2015-11-17 14:23:30 · 11758 阅读 · 3 评论 -
Glide 加载圆角图片,解决多次刷新周围出现黑边问题
现象:使用 Glide 自带的.transform(new RoundedCorners(15)).into(iv);去加载圆角图片,并且设置了占位图,第一次加载并没有什么问题,当多次下拉刷新时,就会出现圆角周围出现黑边的现象,Glide 加载代码: /** * 加载圆角图片 * * @param context context ...原创 2018-06-28 09:35:44 · 3911 阅读 · 3 评论 -
RecyclerView 滑动到指定位置的终极方案
最近有个奇葩需求,顶部有可以切换的 TabLayout,原本下面用 ViewPager 实现,可以左右滑动,后来说需求根据用户切换 Tab 定位到相应的位置,(个人感觉体验不是很好,用户还得用手去点tab),无奈只好改了,我记RecyclerView 有个smoothScrollToPosition(position) 可以实现定位功能,我加了上去之后效果非常差,有时候还不滚动,后来查了一些资料,...原创 2018-06-28 10:45:28 · 31483 阅读 · 10 评论 -
Android IPC机制多进程模式
转载请标明出处: http://blog.csdn.net/u011974987/article/details/50723598; 1. IPC简介 IPC是Inter-Process Communication的缩写,含义为进程间通信或跨进程通信,指两个进程间进行数据交换的过程。说起进程间通信,首先要理解是什么是进程,什么是线程。原创 2016-02-23 15:34:27 · 1190 阅读 · 0 评论 -
Android 切换系统语言源码分析(上)
转载请标明出处: http://blog.csdn.net/u011974987/article/details/50793343; 本文出自:【二锅头的博客】以前了解Android的多语言实现很简单,可以在不同的语言环境下使用不同的资源,就做好相应的语言适配就好,但是一直没有实际使用过。 最近公司的项目要用到多国语言切换,并且还是和手机上系统设置里面的语言切换功能一样,于是就上网查了原创 2016-03-04 00:10:11 · 6357 阅读 · 0 评论 -
Android 异常退出的生命周期分析
概述:典型的Activity 生命周期众所周知,就不用多说了吧;我们知道,Activity除了受用户操作所导致的正常的生命周期方法调度,还有一些异常情况,比如当资源相关的系统配置发生了改变以及系统内存不足时,Activity就可能被杀死,下面就来具体分析这两种情况。情况一 : 当一个activity的config改变的时候,Activity就会被杀死然后重建 而我们最熟悉的config的改变就是屏原创 2016-04-25 16:30:20 · 5993 阅读 · 4 评论 -
Android 连续点击实现一些隐蔽功能
今天刚加了个需求,就是在指定的位置上做点击事件,实现一些功能,就是为了提供xx的口子,实现原理就和Android 手机物理返回键连续点击两次退出一样的道理。代码如下:private int mSecretNumber = 0; private static final long MIN_CLICK_INTERVAL = 600; private long mLastClickTime;//原创 2016-05-16 21:16:37 · 2539 阅读 · 0 评论 -
Android 中AIDL的使用与理解
AIDL的使用:最常见的aidl的使用就是Service的跨进程通信了,那么我们就写一个Activity和Service的跨进程通信吧。 首先,我们就在AS里面新建一个aidl文件(ps:现在AS建aidl不要求和java包名相同了):package aidl;interface IMyInterface { String getInfor(String s);}可以看到,在这里面我们原创 2016-04-25 16:58:27 · 42370 阅读 · 10 评论 -
Android 自定义一款炫酷的加载控件
概述在设计应用的时候,我们应该热爱极简主义,简单就是好的,对于很多用户来说,复杂的东西并不受欢迎。 我要实现的是根据不同的情况去显示不同的加载效果,随用随调,效果是借鉴于某一项目的效果,我认为有必要提取出来改善封装一下,供以后使用。情况大致分为:加载中、无网络、无数据、加载失败等;预览下效果图: 我们怎么实现这种效果呢 view_loading.xml的布局如下:<?xml version="原创 2016-05-19 17:04:43 · 4975 阅读 · 0 评论 -
Android 性能指标检测工具
Android常见问题内存泄漏:不使用的内存空间(对象)一直被引用着没有得到释放。内存抖动:短时间内大量创建对象又在短时间内频繁触发GC导致内存波动很大,android虚拟机执行GC操作时需要耗费CPU性能频繁GC会到来严重的性能问题。内存抖动是因为大量的对象被创建又在短时间内马上被释放。瞬间产生大量的对象会严重占用Young Generation的内存区域,当达到阀值,剩余空间不够的时候,也会原创 2016-06-24 16:23:33 · 2815 阅读 · 0 评论 -
Android 切换系统语言功能实现(下)
转载请标明出处: http://blog.csdn.net/u011974987/article/details/50801770; 概述:简单介绍下这个需求的缘由,这段时间因公司业务需要,其中有一项“设置系统语言”功能,就是在使用APP的过程中,动态的去切换整个Android机器的语言,具体参照手机设置页面有语言切换功能。期初想来是很简单的事情嘛,不就是个简单原创 2016-03-04 12:47:24 · 8028 阅读 · 5 评论 -
Android 统计apk中方法的数量
大家都知道Android有65535方法数的问题,那我们有什么办法能查看我们App的这个值已经有多少了呢?这里利用一个jar来查看点击下载工具如何使用?把下载下来的jar放到一个目录,比如我放在桌面上,使用以下命令:# cd Desktop//在执行以下命令# java -jar C:\Users\uuxuh\Desktop\dex-method-counts.jar C:\Users\uuxu原创 2016-11-30 12:44:36 · 1968 阅读 · 1 评论 -
Android 连接wifi 检测是否需要portal 认证
前言最近在做一个新需求,就是针对开机欢迎引导页,当连接如星巴克,KFC,地铁上等公共场所的WIFI时,都需要认证功能,而我要调起这个认证页面呈现给用户,登陆任何网页会跳转到wifi得认证页面,输入账号密码,点击验证,能够验证wifi,并保证手机网络能正常使用。某些手机管家软件在手机连接上CMCC等wifi时,会弹出通知栏提示跳转到webview去进行portal验证。而我由于各种限制原因,并不原创 2016-11-09 10:49:17 · 11976 阅读 · 1 评论 -
Android L SIM卡自适应更新语言的问题
前言每次到发布UAT和Release 版本的时候,不同的组件总是出现各种问题,在测试中版本中就没有测试出来,就在今天发布Global(海外)版的时候遇到了一个之前并没发现的问题,就是刷机的rom版本是Global版的,默认的系统语言是英文版的。当刷完机,插上大陆的SIM 卡,第一次开机时候,语言启动切换到中文了,由于之前也没这方面经验,对这并不清楚,然后就当BUG 让我修改,后来在网上查了下资料,才原创 2016-11-01 00:42:13 · 2266 阅读 · 1 评论 -
Android 中取得当前时区(以GMT形式)和语言
国际化需求,要访问当地的时区和语言,作为参数上传服务器处理一些业务,Android手机中如果想以GMT形式(GMT+08:00)得到当前时区,如下的工具类做个记录:/** * 时区语言工具类 * @author Xiho * */public class I18NUtils { /** * 获取当前时区 * @return */ public原创 2016-10-19 11:42:31 · 17728 阅读 · 0 评论 -
Android 获取本地已安装的应用程序
有一个需求获取本地指定的系统App和已经下载的App列表:实现非常简单,首先获取本机已安装的App,然后把我们指定的系统App过滤掉,存入一个List集合中,然后把其他的系统App过滤掉,剩下的在放入,另外一个List集合中,组合就Ok。贴下主要代码:/** * Created by Xiho on 12:10 * MyBlog: xuhao.tech * GitHub: git原创 2016-09-09 12:28:03 · 8248 阅读 · 1 评论 -
Android中签名、证书、公钥密钥的概念及使用
资料来源于Android 官方文档的:https://developer.android.com/studio/publish/app-signing.html 还有些资料来源于网络。加以整理!公钥和私钥的概念在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是公开密钥算法(也叫非对称算法、双钥算法)”,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需原创 2016-09-02 16:43:19 · 37714 阅读 · 4 评论 -
android.support.v4.view.NestedScrollingChild cannot be resolved
问题记录: 我用eclipse引入了Sdk自带的android-support-v7-recyclerview.jar,然后使用SwiperefreshLayout+RecyclerView 做下拉刷新,在写适配器的时候出现了一个问题; 最后发现是我android-support-v4.jar和android-support-v7-recyclerview.jar不一致导致的,最后换了v4 ja原创 2016-05-12 18:13:42 · 2838 阅读 · 2 评论 -
Android控件之Toolbar + DrawerLayout的使用
载请标明出处: http://blog.csdn.net/u011974987/article/details/50963495; 最近闲着没事儿,在关注一些遵循最新的Material Design设计规范的应用和效果,感觉很高大上;一直都没有去尝试过Material Design的一些新控件,很多还是不熟悉的,所以最近就写Demo 来熟悉下这些控件的使用,接下来原创 2016-03-23 18:08:52 · 2268 阅读 · 0 评论 -
Android 自定义TextView 实现文本间距
转载请标明出处: http://blog.csdn.net/u011974987/article/details/50845269; Android系统中TextView默认显示中文时会比较紧凑,不是很美观。为了让每行保持一定的行间距,可以设置属性android:lineSpacingExtra或android:lineSpacingMultiplier。 但是有时候我们需要在TextView的原创 2016-03-10 12:04:21 · 10588 阅读 · 2 评论 -
Glide 加载刷新闪动,自定义Transformations 必须实现的方法
前言我们使用Glide加载图片,使用自定义对Transformations 转换器的时候,都忽略了定制变换必须实现的方法: updateDiskCacheKey equals() / hashCode()!官网这么说明的:为了让内存缓存正常地工作你是否必须实现 equals() 和 hashCode() 方法。很不幸,即使你没有复写这两个方法,BitmapTransformatio...原创 2018-12-25 11:35:01 · 4126 阅读 · 1 评论