android
文章平均质量分 77
THEONE10211024
GitHub:https://github.com/THEONE10211024
展开
-
Android SDK Version简介
我们在android工程中经常会遇见如下几个SDK Version——minSdkVersion、targetSdkVersion和maxSdkVersion。根据名字看是显而易见的含义,但是往往越显而易见,越不会被重视。知道个似是而非,大概意思就差不多。因此,我觉得有必要记下一笔,讲讲这几个属性在android里到底是什么意思。minSdkVersion指的是当前APP可以安装的系统最低版本。如原创 2016-12-28 16:09:32 · 1739 阅读 · 0 评论 -
Android Studio你不知道的调试技巧
写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug;那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluate Expression, 知道条件断点;可是你听说过日志断点吗,Method Breakpoint, Exception Breakpoint 呢?还有高大上的 Field Watchpoint ?几种不同的断点转载 2015-12-29 11:38:47 · 9329 阅读 · 0 评论 -
开源项目源码解析-Dagger 源码解析
Dagger 源码解析本文为 Android 开源项目源码解析 中 Dagger 部分项目地址:Dagger,分析的版本:2f9579c,Demo 地址:Dagger Demo分析者:扔物线,校对者:Trinea,校对状态:完成1. 功能介绍1.1 DaggerDagger 是一款 Java 平台的依赖注入库,关于依赖注入,详细见 依赖注入简介。 J转载 2015-12-14 14:46:48 · 1002 阅读 · 0 评论 -
Android App 线上热修复方案
热修复一词恐怕最早应用在微软。为了巩固其windows系统和office的市场占有率,微软开发并维护了一套线上修复方案,用于修复漏洞及特定问题(LDR),避免延续到发版解决(GDR),详见HotFix维基词条。天猫android面临同样的问题,尤其对于双十一来讲。提早发出去的包,如果出现客户端的问题,实在是干着急,覆水难收。因此线上修复方案迫在眉睫。那么跟随这篇文章,我们来梳理一下热修复方转载 2015-11-19 14:39:35 · 9603 阅读 · 1 评论 -
android轮询最佳实践service+AlarmManager+Thread
android中涉及到将服务器中数据变化信息通知用户一般有两种办法,推送和轮询。消息推送是服务端主动发消息给客户端,因为第一时间知道数据发生变化的是服务器自己,所以推送的优势是实时性高。但服务器主动推送需要单独开发一套能让客户端持久连接的服务端程序,不过现在已经有很多开源的代码实现了基于xmmp协议的推送方案,而且还可以使用谷歌的推送方案。但有些情况下并不需要服务端主动推送,而是在一定的时转载 2015-12-11 15:00:37 · 2994 阅读 · 0 评论 -
Android高效加载大图、多图解决方案,有效避免程序OOM
我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多。大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory转载 2015-10-15 15:01:30 · 1711 阅读 · 0 评论 -
Android中图片占用内存的计算
在Android开发中,我现在发现很多人还不会对图片占用内存进行很好的计算。因此撰写该博文来做介绍,期望达到抛砖引玉的作用。 Android中一张图片(BitMap)占用的内存主要和以下几个因数有关:图片长度,图片宽度,单位像素占用的字节数。一张图片(BitMap)占用的内存=图片长度*图片宽度*单位像素占用的字节数注:图片长度和图片宽度的单位是像素。图片(BitMap)占用转载 2015-10-15 14:14:07 · 813 阅读 · 0 评论 -
Android图片压缩相关问题
今天给大家分享的是解决解析图片的出现oom的问题,我们可以用BitmapFactory这里的各种Decode方法,如果图片很小的话,不会出现oom,但是当图片很大的时候就要用BitmapFactory.Options这个东东了,Options里主要有两个参数比较重要.[java] view plaincopyoptions.inJustDec转载 2015-10-15 13:55:54 · 605 阅读 · 0 评论 -
安卓App热补丁动态修复技术介绍
1.背景当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装。有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。这时候就提出一个问题:有没有办法以补丁的方式动态修复紧急Bug,不再需要重新发布App,不再需要用户重新下载,覆盖安装?转载 2015-11-12 23:28:37 · 3273 阅读 · 0 评论 -
Android dex分包方案
当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象:1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT2. 方法数量过多,编译时出错,提示:Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xfff转载 2015-11-12 23:11:24 · 1285 阅读 · 0 评论 -
WebView中实现js与java互相调用
在Android项目中,经常会用到在Webview中js与java的互相调用。当然,Google官方为WebView提供了对应的方法,通过WebView.addJavascriptInterface()方法来注入java对象来实现。但是这个方法有一个问题,在于4.2版本之前有漏洞。今天就来介绍另外一种js与java的互相调用的实现方式。当然这种方式可能网上已经有一些教程,我这里介绍的还是相对完转载 2015-10-11 23:38:12 · 3106 阅读 · 0 评论 -
Android与js交互实例
本文核心代码转自阳光岛主:http://blog.csdn.net/ithomer/article/details/8737999Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为trueAndroid(Java)与JavaScript(HTML)交互有四种情况:1) Android(J转载 2015-10-11 23:23:58 · 810 阅读 · 0 评论 -
Android EventBus源码解析 带你深入理解EventBus
上一篇带大家初步了解了EventBus的使用方式,详见:Android EventBus实战 没听过你就out了,本篇博客将解析EventBus的源码,相信能够让大家深入理解该框架的实现,也能解决很多在使用中的疑问:为什么可以这么做?为什么这么做不好呢?1、概述一般使用EventBus的组件类,类似下面这种方式: ?123转载 2015-08-16 11:31:06 · 1176 阅读 · 0 评论 -
优化listview的方法
从知乎整理,感谢所有的参与者!1. 在getView中,多个点击事件可以共用一个OnClickListener,避免创建多个对象。传递数据可以使用getTag和setTag方法设定。2. 利用ViewHolder缓存,避免每次创建新的View3. 让itemView的layout层级越简单越好。避免过度重绘——这是所有布局都应该遵循原则。4. 尽原创 2015-08-01 17:00:08 · 782 阅读 · 0 评论 -
Android开发中相见恨晚的方法、类或接口
摘抄、整理加个人总结,感谢所有参与者!1. Resources类中的getIndentifier(name,defType,defPackage)方法,根据资源名次获取其ID;2. Array类中的asList(T…array)方法,数组转List集合;3. View类的callOnClick(),performClick()和performLongCli原创 2015-08-01 12:47:52 · 3681 阅读 · 1 评论 -
Android视频录制命令screenrecord
Android视频录制命令screenrecord你要知道:screenrecord是一个shell命令支持Android4.4(API level 19)以上支持视频格式: mp4一些限制某些设备可能无法直接录制,原因是分辨率太高,如果遇到此类问题,请试着指定较低的分辨率不支持录制过程中屏幕旋转,如果录制过程中旋转,有可能画面被切断录制视频的时候声音不会被录下来转载 2015-07-01 23:45:45 · 843 阅读 · 0 评论 -
PorterDuffXfermode的用法
android.graphics.Paintpublic Xfermode setXfermode (Xfermode xfermode)Set or clear the xfermode object. Pass null to clear any previous xfermode. As a convenience, the parameter passed is also re转载 2015-05-26 15:12:04 · 764 阅读 · 0 评论 -
RxJava使用场景小结
取数据先检查缓存的场景取数据,首先检查内存是否有缓存 然后检查文件缓存中是否有 最后才从网络中取 前面任何一个条件满足,就不会执行后面的final Observable memory = Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber转载 2015-12-15 15:42:40 · 1173 阅读 · 0 评论 -
在WebView中如何让JS与Java安全地互相调用
在现在安卓应用原生开发中,为了追求开发的效率以及移植的便利性,使用WebView作为业务内容展示与交互的主要载体是个不错的折中方案。那么在这种Hybrid(混合式) App中,难免就会遇到页面JS需要与Java相互调用,调用Java方法去做那部分网页JS不能完成的功能。网上的方法可以告诉我们这个时候我们可以使用addjavascriptInterface来注入原生接口到JS中,但是在安转载 2015-12-31 10:22:44 · 1781 阅读 · 0 评论 -
可能是东半球最全的RxJava使用场景小结
知道RxJava吗?这里罗列了东半球最全的RxJava使用场景哦,快来看看吧~原创 2015-12-30 16:31:27 · 63000 阅读 · 19 评论 -
深入分析Android监听网络变化的坑
Android开发的同学都知道,在很多场景下我们需要监听网络变化,从而做一些业务逻辑比如刷新数据。于是我们会找到这样一个广播:ConnectivityManager.CONNECTIVITY_ACTION,注册一个BroadcastReceiver,添加一个ConnectivityManager.CONNECTIVITY_ACTION,就可以监听网络变化了。再看看这个action的注释:A cha原创 2016-12-07 20:36:45 · 5316 阅读 · 1 评论 -
AsyncLayoutInflater的简单介绍和源码分析
简介我们知道setContentView()、layoutinflater.inflate()等传统的布局加载方式都是在UI线程中同步加载布局的。当layout.xml过于复杂繁重,加载就会造成UI卡顿甚至ANR。在Google最近发布的Supportv4包中,给我们提供了一个异步加载布局的帮助类:AsyncLayoutInflater。这个类可以帮助你在非UI线程中加载layout,然后将加载好原创 2016-10-10 19:55:36 · 6806 阅读 · 0 评论 -
巧用接口解耦分离实现
架构对于很多初学者来讲往往都是唯恐不及的,总感觉架构对自己而言太过遥远,实际上架构对大家来说并不陌生,甚至你每天都在与之打交道,只是你习以为常没有留意而已。生活中处处是架构设计的影子,只不过在日常生活中我们不称之为架构罢了。记得在一年多以前爱哥在公司楼下的食堂发现一个有趣的现象,楼下食堂打饭是这样的,你得先去食堂售票处那够买饭票,然后拿着这张饭票排队点餐,点餐的过程是这样的,先会有一个大叔问你吃什转载 2016-08-18 15:04:08 · 3789 阅读 · 0 评论 -
jvm参数设置 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 这里有几个问题: 1. 各个参数的含义什么? 2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 3. 为何将上面的参数写入到eclipse.ini文件Eclip转载 2016-04-07 10:05:36 · 4071 阅读 · 0 评论 -
Android面试回忆录
最近打算换工作了,面试了百度作业帮、今日头条、阿里、网易和小米的工作。然后把面试的题目写下来,给找工作的同学一些指导。首先,我面试的是Android高级岗,不过一些基础的知识应该是所有层次的同学都应掌握的。其次,问到的项目相关的问题不在这里和大家分享,因为这不是通用的。但是不代表你的项目就在面试中不重要,相反,你做过的项目和你的经历都在很大程度上决定了你的通过率。下面我就把我能想到的题目分享给原创 2016-03-31 11:54:46 · 4055 阅读 · 2 评论 -
常见的Android优化方案
收集整理了平时工作中常见的需要注意的优化方案,文章只是以提纲的方式列出,没有做深入分析,其目的只是起到一个提醒的作用,在脑中有这个概念即可,工作中能有想到,然后能以keyword的方式搜索到就够了。布局优化1、标签避免重复布局2、标签和合并使用减少层级关系3、使用ViewStub进行按需加载布局。比如网络异常页面,只在网络异常的情况下加载,避免多余的布局和绘制时间。绘制优化原创 2016-03-03 20:03:00 · 1841 阅读 · 0 评论 -
饿了么移动APP的架构演进
随着移动互联网时代的到来,移动技术也随之飞速发展。如今,APP已然成为绝大多数互联网企业用来获取用户的核心渠道。与此同时,伴随着业务量的增长,愈来愈多的APP也在不断地挑战着每一个移动端研发人员的知识深度,而移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代。饿了么作为一家在O2O领域高速发展的公司,APP面临着多重挑战,如庞大的用户群体、高频高并发的业务、转载 2016-03-01 15:30:07 · 3442 阅读 · 0 评论 -
美团Android DEX自动拆包及动态加载简介
概述作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能、添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误:生成的apk在android 2.3或之前的机器上无法安装,提示INSTALL_FAILED_DEXOPT方法数量过多,编译时出错,提示: Conversion to Dalvik f转载 2016-03-01 14:49:28 · 1174 阅读 · 0 评论 -
听说”双11”是这么解决线上bug的
听说”双11”是这么解决线上bug的 --Android线上热修复的使用与原理预备知识和开发环境Android NDK编程AndFix浅析Android线上热修复的原理大同小异,这里只针对目前最火的框架AndFix进行讲解。主要从AndFix的使用、原理以及优缺点三个方面进行阐述。使用方式介绍AndFix是一个A原创 2015-12-12 15:11:25 · 3866 阅读 · 8 评论 -
Android Service 中 onStartCommand()函数返回值含义
onStartCommand()是由Android系统调用的,本质上也是调用了onStart()方法。onStartCommand()返回值有几种:1)START_STICKY英文解释:Constant to return from onStartCommand: if this service's process is killed while it is started原创 2015-06-06 13:41:09 · 1984 阅读 · 0 评论 -
about service in android
注意:标红处!A Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for ot原创 2015-06-06 11:36:28 · 1235 阅读 · 0 评论 -
Android开发内存管理之道
一篇好文导读:相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被原创 2015-04-04 23:48:38 · 635 阅读 · 0 评论 -
Android 属性动画(Property Animation) 完全解析 (下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38092093上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法:ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~当然了属性动转载 2015-04-02 18:01:42 · 765 阅读 · 0 评论 -
Android官方提供的支持不同屏幕大小的全部方法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8830286原文地址为:http://developer.android.com/training/multiscreen/screensizes.html本文将告诉你如何让你的应用程序支持各种不同屏幕大小,主要通过以下几种办法:让你的布局能充分的自适转载 2015-03-31 16:58:22 · 879 阅读 · 0 评论 -
Android高效加载大图、多图解决方案,有效避免程序OOM
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9316683本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文。http://developer.android.com/training/displaying-bitmaps/index.html转载 2015-03-31 17:37:34 · 616 阅读 · 0 评论 -
Android 属性动画(Property Animation) 完全解析 (上)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/380674751、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的转载 2015-04-02 18:00:12 · 902 阅读 · 0 评论 -
Android任务和返回栈完全解析,细数那些你所不知道的细节
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/41087993本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文。http://developer.android.com/guide/components/tasks-and-back-stack.html转载 2015-03-31 14:53:13 · 650 阅读 · 0 评论 -
*运项目难点之ScrollView中嵌套百度地图(BaiduMap)的解决方案
由于产品的需求,有时候不得不在ScrollView中嵌套百度地图(BaiduMap)。但是,嵌套之后会存在一些问题,两个比较突出的问题是:1)ScrollView中事件处理与BaiduMap存在冲突。2)在BaiduMap随着ScrollView拖动的时候,存在黑影问题。很多人遇到过这两个问题,也比较棘手,所以希望百度能给出官方的解决方案。下面说说我的处理办法。1)ScrollView中事件处原创 2015-03-26 15:42:34 · 7467 阅读 · 14 评论 -
onSaveInstanceState和onRestoreInstanceState触发的时机
当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState就会被执行,除非该activity是被用户主动销毁的,例如当用户按BACK键的时候。 注意上面的双引号,何为“容易”?言下之意就是该activity还没有被销毁,而仅仅是一种可能性。这种可能性有哪些?通过重写一个activity的所有生命周期的onXXX方法,包括onSaveInstanc转载 2015-03-04 16:40:51 · 601 阅读 · 0 评论 -
Android是如何在不同屏幕上适配图片的 -- 或控件大小
在这个日新月异的年代,安卓系统和安卓手机都在快速得发展和更新,于是出现了各种版本的安卓系统和各种配置(屏幕尺寸、屏幕密度、分辨率等)的安卓手机。当一个应用提供一个图片资源时,如果采取一些措施,从视觉角度该图片就会在不同的手机上呈现相同的效果。那么,都有哪些措施,这些措施是如何工作的呢?接下来是笔者对此问题的研究心得,希望对你有所帮助。 u 首先阐释一些术语和概念 Ø 屏幕尺寸(转载 2015-03-25 20:05:00 · 1647 阅读 · 0 评论