- 博客(19)
- 资源 (4)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android 自定义标题栏
背景在大多数应用的页面顶部,都会有标题栏,这种业务相关性不大,通用性很强的视图,第一直觉,是要把它抽取,做成通用的。 最先想到的是使用google推荐的ActionBar 和 ToolBar。但要标题文字居中就特别麻烦,ActionBar得使用自定义布局setCustomView(),设置后,它提供的其它api就相当于废弃了,原有的api无法操作自定义的布局,相当于只能用它当作容器,vie
2016-08-07 21:31:51
5089
1
原创 Android刘海屏适配
Android刘海屏适配全屏模式下刘海屏黑边(内容区域下挫)问题,支持国国内 华为,小米,OPPO/VIVIO 非原生9.0系统的刘海屏刘海屏是Android9.0之后才支持的 详见源码 android.view.DisplayCutout.class国内主流手机也有刘海屏,官方有相关的刘海屏适配文档,这里提供一个工具类Util 可能更新不及时,仅供参考最终效果是刘海屏不遮挡内容区域,支...
2019-12-05 17:46:33
382
转载 Android增量更新
Android增量更新首先增量更新应该了解个概念:增量更新:在版本较近的apk升级的时候,根据两个apk之间的差异(生成差异包),合成新的安装包,在应用内部进行升级的一种操作(需要重新安装apk文件)。热更新:在发布的版本有BUG的时候,动态加载dex文件,在不影响apk的情况下进行修复BUG(不需要重新安装apk文件)。作者:笔墨Android链接:https://juejin.im/...
2019-10-24 14:16:06
203
原创 UnsatisfiedLinkError:libwebviewchromium.so is 32-bit instead of 64-bit
Caused by java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.google.android.webview-1/lib/arm/libwebviewchromium.so" is 32-bit instead of 64-bit
2017-10-13 11:14:00
2604
转载 Android Res资源适配详解
由于设备的多样性,Android 系统会检测当前设备配置,并为应用加载合适(最匹配)的资源。下面根据经验结合官方api,详细说下系统适配的规则。一、10种资源。在 res中以 <resources_name>-<config_qualifier> 形式命名目录。Android系统一共为应用提供了10类资源目录(即resources_name),如下表:目录资源类型animator/用于定义
2017-03-26 23:02:49
2272
原创 Application onCreate函数多次被调用
Android应用可以支持开启多个进程。 通常的做法是这样service android:name=".NetworkService" android:process=":network"/>通常我们在Application的onCreate方法中会做很多初始化操作,但是每个进程启动都需要执行到这个onCreate方法,为了避免不必要的初始化,建议按照进程(通过判断当前进程名
2017-01-05 15:52:51
615
6
原创 Volley相关
Volley相关 Volley的磁盘缓存 在面试的时候,聊到 Volley 请求到网络的数据缓存。当时说到是 Volley 会将每次通过网络请求到的数据,采用FileOutputStream,写入到本地的文件中。 那么问题来了:这个缓存文件,是声明在一个SD卡文件夹中的(也可以是getCacheFile())。如果不停的请求网络数据,这个缓存文件夹将无限制的增大,最终达到SD卡容量时,会发生
2016-09-21 16:35:02
282
原创 单例模式解析
其中单例(Singleton)模式应该是我们耳熟能详的一种模式。本文将比较特别的介绍java设计模式中的单例模式。概念单例模式,又称单件模式或者单子模式,指的是一个类只有一个实例,并且提供一个全局访问函数。实现思路在单例的类中设置一个private静态变量sInstance,sInstance类型为当前类,用来持有单例唯一的实例。将(无参数)构造器设置为private,避免外部使用new构造多个
2016-08-07 17:06:29
272
转载 Android App监听自身卸载,反馈统计
方案监听系统卸载广播:只能监听到其他应用的卸载广播,无法监听到自己是否被卸载。读取系统log:第三方软件卸载无法得知。静默安装另一个程序,监听自己是否被卸载:需要root权限。Java线程轮询,监听/data/data/{package-name}目录是否存在:卸载app,进程退出,线程也被销毁。C进程轮询,监听/data/data/{package-name}目录是否存在:目前业界普遍采
2016-07-26 09:48:36
6268
1
转载 Android 拍照或从相册取图片并裁剪
Android 拍照或从相册取图片并裁剪 在Android中,Intent触发Camera程序,拍好照片后,将会返回数据,但是考虑到内存问题,Camera不会将全尺寸的图像返回给调用的Activity,一般情况下,有可能返回的是缩略图,比如120*160px。 这是为什么呢?这不是一个Bug,而是经过精心设计的,却对开发者不透明。 比如摄像头800W像素,根据我目前设
2016-07-22 13:54:52
530
转载 Android图片压缩(质量压缩和尺寸压缩)
转载:http://blog.csdn.net/jdsjlzx/article/details/44228935在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图。两种方法都实装在
2016-06-01 16:07:44
286
转载 EventBus3.0源码解读
转自:http://blog.csdn.net/ljd2038/article/details/51470734目录(?)[+]综述 EventBus是我们在项目当中最常用的开源框架之一。对于EventBus的使用方法也是非常的简单。然而EventBus内部的实现原理也不是很复杂。在这里便针对EventBus3.0的源码进行一下详细的分析。对于Ev
2016-05-23 16:01:20
284
转载 Android官方MVP架构解读
转自:http://blog.csdn.net/ljd2038/article/details/51477475目录(?)[+]综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的。而对于Android应用的开发中本身可视为一种MVC架构。通常在开发中将XML
2016-05-23 15:58:20
399
原创 在子线程中Toast
最近在些一个ToastUtil,用于统一新公司项目中的toast提示,先贴出ToastUtil的代码吧,只有简短几行package com.luluyou.licai.util;import android.os.Handler;import android.os.Looper;import android.support.annotation.StringRes;import android
2016-05-16 16:18:12
442
转载 Android通用流行框架大全【整理】
1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picasso一个强大的图片下载与缓存的库
2016-05-16 11:58:51
321
转载 Android抽象布局——include、merge 、ViewStub
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+] 在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。1、布局重用标签能够重用布局文件,简单的使用如下:[html]
2016-05-11 09:54:21
279
转载 Gradle 多环境配置
设置不同的BuildType可以通过设置不同的 BuildType 来生成多个版本的配置。修改 app 模块下的 build.gradle:android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicatio
2016-05-10 16:54:01
1414
转载 友盟自动更新技术解决方案(安卓版)
系统结构友盟自动更新系统的示意图如下:图中手机代表客户端。服务端的各个模块描述如下:WebConsole:提供上传更新包的网站操作界面。FS:文件系统,存储apk文件和增量更新包,增量更新的原理后文会提到。DB:用于存储文件的属性,例如版本号,更新描述,文件的md5等。Server: 接收客户端请求,返回文件下载链接。CDN:提供
2016-05-10 13:51:33
675
转载 Groovy入门教程
Groovy入门教程kmyhy@126.com 2009-5-13一、groovy是什么简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中。作为跑在JVM中的另一种语言,groovy语法与 Java 语言的语法很相似。同时,Groovy 抛弃了java烦琐的文法。同样的语句,使用groovy能在最大限度上减少你的击键次数——这确实是“懒惰程序员
2016-05-10 13:48:09
335
prophecy《彗星撞地球
2012-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人