![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android进阶
天才少年_
微信公众号:程序员小安。更多精彩文章定期推送。
展开
-
android-support-multidex解决Dex 文件方法数超过65536
MultiDex的产生背景当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。但是在早期的Android系统中,DexOpt有一个问题,DexOpt会把每一个类的原创 2016-05-12 16:41:18 · 2801 阅读 · 0 评论 -
android view滑动的三种方式
1. 前言view的滑动在安卓中特别多,基本有三种方式: 1.通过view本身提供的scrollTo/scrollBy方法实现滑动。 2.通过给view添加平移动画实现滑动。 3.通过改变view的layoutparams使得view重新布局,从而实现滑动。2.使用方法(1)通过view本身提供的scrollTo/scrollBy方法实现滑动源码如下:public void scrollTo(原创 2016-07-20 12:51:38 · 1483 阅读 · 0 评论 -
Jenkins实现Android自动打包
1. 前言14年在给天天酷跑团队做sdk的算是第一次接触到Jenkins,当时有种乡下孩子进城的感觉,被jenkins流弊的体验所折服,只需要一个按钮点一下就坐等出包,不用IED繁琐的打包流程。当然自动化打包好处很多,比如定时出包,可以每天晚上12点出包;还有一种情况场景也急需解决,比如正在你本地在修改代码,突然测试要求出包,你本地代码可能一团糟,工程完全跑不起来,很不方便。当然Jenkins好处很原创 2017-06-04 13:44:52 · 10864 阅读 · 0 评论 -
APK瘦身之删除多余资源文件
1. 前言移动端项目迭代很频繁,一般半年左右,app包就变得很大,并且包含很多废弃的图片,layout文件,本篇文章主要讲如何快速定位出废弃资源,并快速删除。这次瘦身使用的工作是Android Studio Lint工具 , 用瘦身前APK为21.5M, 瘦身后为18.4M. 瘦身结果为APK大小减少了3.1M(14%)2.准备工作1.Android Studio Lint只能定位出废弃的资源原创 2017-04-17 13:29:15 · 4771 阅读 · 0 评论 -
android性能优化----页面跳转优化
1. 前言很多情况下,页面A跳转页面B,会有产品反应,跳转过程太慢,会有很小的黑屏,需要开发优化,这里总结出几个优化点。2.优化点1)数据预加载,前也界面处理好后一个界面需要的数据 2)页面先显示默认数据,网络请求回来再更新界面 3)网络接口数据压缩,并且细化接口,尽量不要一个接口返回所有数据。 4)页面布局延时加载,先加载需要显示的布局(viewstub),listview自动实现了延时加载原创 2016-09-28 18:33:32 · 4152 阅读 · 0 评论 -
RecyclerView详细介绍-----多item布局(三)
1.前言前面两篇文章主要介绍了recyclerview的基本使用,接下来介绍复杂一点的需求。 我们之前用listview的时候肯定遇到itemType>1的时候,我们定义多套item布局,借助getItemViewType()实现多套布局。但是如果像淘宝首页,上面是listview的一个一个item,下面确是一个GridView的话,我们如何实现呢?当然之前有人会把GridView用ListVie原创 2016-11-11 21:17:03 · 6229 阅读 · 1 评论 -
RecyclerView详细介绍-----解决点击事件,刷新错误(二)
RecyclerView基本使用可参考:RecyclerView详细介绍(一)1. 前言RecyclerView 没有提供类似ListView的setOnItemClickListener方法,所以只有我们自己为RecyclerView添加点击事件, 本篇文章主要介绍如何添加点击事件,进行Item增加和删除,并且解决RecycleView Adapter使用notifyItemRemoved和not原创 2016-11-10 17:48:12 · 7066 阅读 · 2 评论 -
RecyclerView详细介绍----基础使用(一)
1. 前言RecyclerView 是Android L版本中新增加的,相信很多人都听说他可以完美代替Listview,Gridview。那他到底比Listview,Gridview强大在哪里呢,今天主要从使用上来带大家入门,性能后面再单独讲解。ListView大家都非常熟悉了,使用ListView一般就三个步骤: 1)初始化ListView 2)创建adapter适配器(一般继承baseAda原创 2016-11-08 23:00:24 · 3736 阅读 · 0 评论 -
android 悬浮图片滑动
1. 前言类似iphone的AssistiveTouch,可以跟随手指,全屏随意滑动。 通过这篇文章后,http://blog.csdn.net/dfskhgalshgkajghljgh/article/details/51967260,应该做一个这种效果非常简单。2.选用何种方式1.scrollTo/scrollBy:操作简单,适合对view的内容的滑动,同样也可以对view的父元素滑动,从而让原创 2016-07-20 15:22:24 · 3511 阅读 · 0 评论 -
Android service进程保护
一,基本概念1.什么才叫应用进程保活应用进程保活可以理解为应用位于后台永远不能被杀死。这里的可以简略地分为两种情况,第一种是当系统资源紧俏的时候或者基于某种系统自身的后台运行规则选择杀死你的后台应用来获得更多的资源,第二种是用户手动调用某些安全软件的清理功能干掉你的后台应用。对于Android 5.0以前的系统我们可以考虑以上两种情况下的后台常驻,而对于Android 5.0以及以后的版本我们只能基原创 2016-05-11 14:16:23 · 10934 阅读 · 2 评论 -
Message创建方式:new Message和obtainMessage的区别
1. 前言创建Message对象的时候,有三种方式,分别为: 1.Message msg = new Message(); 2.Message msg2 = Message.obtain(); 3.Message msg1 = handler1.obtainMessage(); 这三种方式有什么区别呢?2.使用方式public class MainActivity extends Activ原创 2016-09-26 17:25:17 · 23572 阅读 · 5 评论 -
android机型适配终极篇
一,基本概念1、分辨率,屏幕大小,密度 (1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920、1440x2560的2K屏等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。 (2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸原创 2016-01-22 22:26:16 · 23182 阅读 · 5 评论 -
android listview 局部刷新
1. 前言一般情况下Listview和Gridview的刷新界面的方式是调用adapter.notifyDataSetChanged()进行界面刷新。大家都知道此方法是将界面中的数据全部刷新一遍,虽然listview自身做了缓存,并且我们复用了convertView,但是当前界面的item布局还是会全部刷新,如果我们只是改变item的一个属性,比如点赞就要全部刷新数据,性能较差,从而有了如下的方案。原创 2016-09-07 17:49:43 · 2389 阅读 · 0 评论 -
Android使用UncaughtExceptionHandler捕获全局异常
1. 前言Android应用出现crash时,会出现“程序异常退出”的提示,随后应用关闭,用户体验非常不好。一般为了捕获应用运行时异常后做出适当处理,给出合理提示时,我们开发中可以继承UncaughtExceptionHandler类来处理,提升用户体验。2.使用方法(1)定义CrashHandler处理类,如果发生异常,则在本地文件中记录堆栈信息,代码如下所示:package com.broade原创 2016-09-10 10:31:12 · 5202 阅读 · 0 评论 -
startService与bindService的区别
Android执行Service有两种方法,一种是startService,一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。 1、生命周期上的区别执行startService时,Service会经历onCreate->onStartCommand。当执行stopService时,直接调用onDestroy方法。调用者如果没有stopService,Servi转载 2016-05-21 16:46:15 · 25743 阅读 · 1 评论 -
Android性能优化之冷启动优化
1.前言APP冷启动比较慢,点击桌面图片需要用户等待很久,体验较差。目标:启动时间缩短1000ms2.APP启动方式冷启动(Cold start)场景:冷启动是指APP在手机启动后第一次运行,或者APP进程被kill掉后在再次启动。可见冷启动的必要条件是该APP进程不存在,这就意味着系统需要创建进程,APP需要初始化。在这三种启动方式中,冷启动耗时最长,对于冷启动的优化也是最具挑战的。...原创 2019-08-26 19:35:18 · 5755 阅读 · 1 评论