自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 资源 (2)
  • 收藏
  • 关注

原创 常见的Android优化方案

收集整理了平时工作中常见的需要注意的优化方案,文章只是以提纲的方式列出,没有做深入分析,其目的只是起到一个提醒的作用,在脑中有这个概念即可,工作中能有想到,然后能以keyword的方式搜索到就够了。布局优化1、标签避免重复布局2、标签和合并使用减少层级关系3、使用ViewStub进行按需加载布局。比如网络异常页面,只在网络异常的情况下加载,避免多余的布局和绘制时间。绘制优化

2016-03-03 20:03:00 1823

转载 饿了么移动APP的架构演进

随着移动互联网时代的到来,移动技术也随之飞速发展。如今,APP已然成为绝大多数互联网企业用来获取用户的核心渠道。与此同时,伴随着业务量的增长,愈来愈多的APP也在不断地挑战着每一个移动端研发人员的知识深度,而移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代。饿了么作为一家在O2O领域高速发展的公司,APP面临着多重挑战,如庞大的用户群体、高频高并发的业务、

2016-03-01 15:30:07 3405

转载 美团Android DEX自动拆包及动态加载简介

概述作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能、添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误:生成的apk在android 2.3或之前的机器上无法安装,提示INSTALL_FAILED_DEXOPT方法数量过多,编译时出错,提示: Conversion to Dalvik f

2016-03-01 14:49:28 1162

转载 在WebView中如何让JS与Java安全地互相调用

在现在安卓应用原生开发中,为了追求开发的效率以及移植的便利性,使用WebView作为业务内容展示与交互的主要载体是个不错的折中方案。那么在这种Hybrid(混合式) App中,难免就会遇到页面JS需要与Java相互调用,调用Java方法去做那部分网页JS不能完成的功能。网上的方法可以告诉我们这个时候我们可以使用addjavascriptInterface来注入原生接口到JS中,但是在安

2015-12-31 10:22:44 1767

原创 可能是东半球最全的RxJava使用场景小结

知道RxJava吗?这里罗列了东半球最全的RxJava使用场景哦,快来看看吧~

2015-12-30 16:31:27 62910 19

转载 Android Studio你不知道的调试技巧

写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug;那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluate Expression, 知道条件断点;可是你听说过日志断点吗,Method Breakpoint, Exception Breakpoint 呢?还有高大上的 Field Watchpoint ?几种不同的断点

2015-12-29 11:38:47 9301

转载 RxJava使用场景小结

取数据先检查缓存的场景取数据,首先检查内存是否有缓存 然后检查文件缓存中是否有 最后才从网络中取 前面任何一个条件满足,就不会执行后面的final Observable memory = Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber

2015-12-15 15:42:40 1164

转载 开源项目源码解析-Dagger 源码解析

Dagger 源码解析本文为 Android 开源项目源码解析 中 Dagger 部分项目地址:Dagger,分析的版本:2f9579c,Demo 地址:Dagger Demo分析者:扔物线,校对者:Trinea,校对状态:完成1. 功能介绍1.1 DaggerDagger 是一款 Java 平台的依赖注入库,关于依赖注入,详细见 依赖注入简介。 J

2015-12-14 14:46:48 986

原创 听说”双11”是这么解决线上bug的

听说”双11”是这么解决线上bug的                            --Android线上热修复的使用与原理预备知识和开发环境Android NDK编程AndFix浅析Android线上热修复的原理大同小异,这里只针对目前最火的框架AndFix进行讲解。主要从AndFix的使用、原理以及优缺点三个方面进行阐述。使用方式介绍AndFix是一个A

2015-12-12 15:11:25 3842 8

转载 android轮询最佳实践service+AlarmManager+Thread

android中涉及到将服务器中数据变化信息通知用户一般有两种办法,推送和轮询。消息推送是服务端主动发消息给客户端,因为第一时间知道数据发生变化的是服务器自己,所以推送的优势是实时性高。但服务器主动推送需要单独开发一套能让客户端持久连接的服务端程序,不过现在已经有很多开源的代码实现了基于xmmp协议的推送方案,而且还可以使用谷歌的推送方案。但有些情况下并不需要服务端主动推送,而是在一定的时

2015-12-11 15:00:37 2977

转载 Android App 线上热修复方案

热修复一词恐怕最早应用在微软。为了巩固其windows系统和office的市场占有率,微软开发并维护了一套线上修复方案,用于修复漏洞及特定问题(LDR),避免延续到发版解决(GDR),详见HotFix维基词条。天猫android面临同样的问题,尤其对于双十一来讲。提早发出去的包,如果出现客户端的问题,实在是干着急,覆水难收。因此线上修复方案迫在眉睫。那么跟随这篇文章,我们来梳理一下热修复方

2015-11-19 14:39:35 9588 1

转载 安卓App热补丁动态修复技术介绍

1.背景当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装。有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。这时候就提出一个问题:有没有办法以补丁的方式动态修复紧急Bug,不再需要重新发布App,不再需要用户重新下载,覆盖安装?

2015-11-12 23:28:37 3252

转载 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 1265

转载 Kotlin: Java 6 废土中的一线希望

去年,Java8 发布了,增加了很多新特性和提升,比如lambda,stream。Java 9 的标准也已经在制定了。但是超过半数的 Android 设备仍在运行着 Java 6,我们要怎么才能用上新的现代化语言呢?在 DroidCon NYC 2015 的这个分享里,Michael Pardo 介绍了 Kotlin: 由 JetBrains 开发出的 JVM 静态语言。Kotlin 由很

2015-10-30 14:21:35 6649 1

转载 Google 的 Java 编程风格指南

这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明确强制要求的,我们尽量避免提供意见。 1.1 术语说

2015-10-30 14:12:50 922

转载 Base64加密原理

开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下Base64的相关内容,花几分钟时间就可以彻底理解它。文 章下边贴了一个Base64的编解码器,方便阅读文章的同时来实验。  一. Base64编码由来  为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的

2015-10-22 15:22:33 1394

转载 Android高效加载大图、多图解决方案,有效避免程序OOM

我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多。大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory

2015-10-15 15:01:30 1692

转载 Android中图片占用内存的计算

在Android开发中,我现在发现很多人还不会对图片占用内存进行很好的计算。因此撰写该博文来做介绍,期望达到抛砖引玉的作用。  Android中一张图片(BitMap)占用的内存主要和以下几个因数有关:图片长度,图片宽度,单位像素占用的字节数。一张图片(BitMap)占用的内存=图片长度*图片宽度*单位像素占用的字节数注:图片长度和图片宽度的单位是像素。图片(BitMap)占用

2015-10-15 14:14:07 797

转载 Android图片压缩相关问题

今天给大家分享的是解决解析图片的出现oom的问题,我们可以用BitmapFactory这里的各种Decode方法,如果图片很小的话,不会出现oom,但是当图片很大的时候就要用BitmapFactory.Options这个东东了,Options里主要有两个参数比较重要.[java] view plaincopyoptions.inJustDec

2015-10-15 13:55:54 588

原创 一、Two Sum

Two Sum Given an arrayof integers, find two numbers such that they add up to a specific targetnumber.The functiontwoSum should return indices of the two numbers such that they add up to thetarge

2015-10-13 16:01:44 523

原创 整理leetCode算法系列

leetCode是目前一个针对面试算法比较好的oj平台,上面有常见的、新鲜的面试算法题目。在刷了一部分题目之后,我觉得针对一道题目,AC不是最后的目的。一道好的题目,不是一次AC就能说明你已经解决这道问题。代码的效率、整洁性、其他解决思路或者一些别人用到的而你不知道的小技巧都应该是在AC后值得慢慢研读、学习和做笔记的。因此,我觉得有必要将之前做过的题目整理下来,相信会有不少的收获!在此之前,我

2015-10-13 14:27:04 800

转载 WebView中实现js与java互相调用

在Android项目中,经常会用到在Webview中js与java的互相调用。当然,Google官方为WebView提供了对应的方法,通过WebView.addJavascriptInterface()方法来注入java对象来实现。但是这个方法有一个问题,在于4.2版本之前有漏洞。今天就来介绍另外一种js与java的互相调用的实现方式。当然这种方式可能网上已经有一些教程,我这里介绍的还是相对完

2015-10-11 23:38:12 3079

转载 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 791

转载 Android EventBus源码解析 带你深入理解EventBus

上一篇带大家初步了解了EventBus的使用方式,详见:Android EventBus实战 没听过你就out了,本篇博客将解析EventBus的源码,相信能够让大家深入理解该框架的实现,也能解决很多在使用中的疑问:为什么可以这么做?为什么这么做不好呢?1、概述一般使用EventBus的组件类,类似下面这种方式: ?123

2015-08-16 11:31:06 1161

原创 优化listview的方法

从知乎整理,感谢所有的参与者!1.      在getView中,多个点击事件可以共用一个OnClickListener,避免创建多个对象。传递数据可以使用getTag和setTag方法设定。2.      利用ViewHolder缓存,避免每次创建新的View3.      让itemView的layout层级越简单越好。避免过度重绘——这是所有布局都应该遵循原则。4.    尽

2015-08-01 17:00:08 764

原创 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 3668 1

转载 C++ STL算法系列4---unique , unique_copy函数

一.unique函数类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。 1 // sort words alphabetically so we can find the duplicates 2 sort(word

2015-07-21 14:06:02 1133 1

原创 仿IOS中下拉刷新的“雨滴”效果

在IOS中,有非常赞的“水滴”下拉效果,很久之前也想在Android上实现,但是苦于能力有限,一直未能付诸行动。这几天趁着空隙时间,写了一版初步实现,基本达到了“水滴”拖拽的效果。但是还有很多细节需要进一步完善。现将源代码公布出来,希望得到更多人的支持和完善。也希望你们能喜欢。代码有清晰的注释,相信代码是最好的老师!欢迎各位批评指正!你的start和fork是对我最大的支持!源码地址:http

2015-07-02 12:53:20 4225 1

转载 Android视频录制命令screenrecord

Android视频录制命令screenrecord你要知道:screenrecord是一个shell命令支持Android4.4(API level 19)以上支持视频格式: mp4一些限制某些设备可能无法直接录制,原因是分辨率太高,如果遇到此类问题,请试着指定较低的分辨率不支持录制过程中屏幕旋转,如果录制过程中旋转,有可能画面被切断录制视频的时候声音不会被录下来

2015-07-01 23:45:45 830

转载 Android Project Butter分析

Android Project Butter分析一背景知识介绍随着时间的推移,Android OS系统一直在不断进化、壮大,日趋完善。但直到Android 4.0问世,有关UI显示不流畅的问题也一直未得到根本解决。在整个进化过程中,Android在Display(显示)系统这块也下了不少功夫,例如,使用硬件加速等技术,但本质原因似乎和硬件关系并不大,因为iPhone的硬件配置并不比那些

2015-06-19 10:14:53 602

转载 Android Gradle

Google I/O 2013发布了新的开发工具Android Studio和新的构建系统Gradle, Android Studio自不必说,这是Android IDE的未来。这篇文章就来学习下Gradle。什么是Gradle?Gradle 是以 Groovy 语言为基础,面向Java应用为主,基于DSL语法的自动化构建工具。说到Java的自动化构建工具,大家一定对Ant和Mav

2015-06-17 14:42:04 780

转载 Android Studio中几个非常有用的工具

1、ButterKnife ZeleznyButterKnife 生成器,使用起来非常简单方便,不知道ButterKnife的赶紧去我的博客搜下2、SelectorChapek设计师给我们提供好了各种资源,每个按钮都要写一个selector是不是很麻烦?这么这个插件就为解决这个问题而生,你只需要做的是告诉设计师们按照规范命名就好了,其他一键搞定。3、GsonForm

2015-06-17 14:35:18 1291

转载 安卓调试神器-Stetho(Facebook出品)的使用

前言Chrome的Developer Tools对于WEB开发者来讲几乎是一个神器,而Chrome Store里也有无奇不有的插件,如果Chrome能调安卓应用应该是一件美好的事,而Facebook开源的一个工具Stetho让Chrome调试android 应用不再是一个梦。安卓在调试时,有时候需要查看数据库,SharePreference等,而这个前提是必须root,另一方面,andoi

2015-06-17 10:47:07 23809 1

转载 Andriod网络优化相关技术点整理

介绍下针对移动端的网络优化,不限于 Android,同样适用于 iOS 和 H5。一个网络请求可以简单分为连接服务器 -> 获取数据两个部分。其中连接服务器前还包括 DNS 解析的过程;获取数据后可能会对数据进行缓存。一、连接服务器优化策略1. 不用域名,用 IP 直连省去 DNS 解析过程,DNS 全名 Domain Name

2015-06-16 23:40:44 1158

转载 什么是Java垃圾回收器

Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation)、自动回收(Garbage Collect)功能,这两个操作都发生在Java堆上(一段内存快)。某一个时点,一个对象如果有一个以上的引用(Rreference)指向它,那么该对象就为活着的(Live),否则死亡(Dead),视为垃圾,可被

2015-06-11 13:09:59 750

原创 Android初学者必读范例,非常丰富的Api介绍资料!

第一手源代码教科书!!100%google官方出品!!!不要九百九!也不要九十九!更不要九块九!正品包邮!百分百开源!史诗般力作!就在这里:https://github.com/THEONE10211024/ApiDemos !错过今天,你将后悔一辈子!!!

2015-06-10 13:02:50 1453 2

原创 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 1964

原创 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 1220

转载 Android中的Interpolator

Interpolator用于动画中的时间插值,其作用就是把0到1的浮点值变化映射到另一个浮点值变化。本文列出Android API提供的Interpolator的若干种实现,列出源码,并且用一个程序绘制出其数学曲线。(项目链接附在文后)。 AccelerateDecelerateInterpolator/** * An interpolator where t

2015-06-02 18:41:11 627

原创 设计模式<五>——状态模式

类图状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类【DP】。主要解决的就是当控制一个状态的条件表达式过于复杂的时候,把状态转移到表示不同状态的一系列类当中。目的是把复杂而冗长的条件判断简化。好处便是将与特性状态相关的行为局部化,并且将不同状态的行为分割开来。

2015-06-02 09:01:41 1073

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除