Android
IT界的吉祥物
前同程,现薄荷
展开
-
Android之unable to execute dex java heap space解决方案
修改eclipse目录下面额eclipse.ini文件 在第一行添加 -vmC:\Program Files\Java\jdk1.6.0_22\bin\javaw.exe (你jdk的目录)修改-Xms128m-Xmx512m修改--launcher.XXMaxPermSize512m原创 2014-03-12 12:23:38 · 5559 阅读 · 0 评论 -
Android之热修复框架Nuwa
前言当热修复框架还没出现时,我们的整个开发流程是这样的:先是开发,接着测试,如果有bug修复,当测试实在测不出问题,就打包上线,如果在线上出现问题,就需要修复Bug,并再次打包上线,由于各大平台的审核机制不同,上线的时间也是不固定,在这个阶段用户在多次打开APP并出现相同问题后就有可能卸载软件,这样的话公司就会流失部分用户,在热修复出现后,可以避免这种情况的发生,因为线上出现bug后,我们可以通过热原创 2017-04-20 18:12:35 · 26298 阅读 · 2 评论 -
Android之集成微信登录
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/44041241本文出自:【顾林海的博客】 前言这篇微信登录的文章是很早写的,看了下面评论的,一个劲的要Demo,其实我是不喜欢这样的,我们做为程序员,不应该遇到什么问题都不去自己解决,而想要速成,快速的得到想要的,写了微信登录,很多人都说resp不能获...原创 2015-03-03 18:49:00 · 6468 阅读 · 27 评论 -
Android之DiskLruCache源码解析
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/73802453 本文出自:【顾林海的博客】前言Andrpod的DiskLruCache是用于磁盘缓存的一套解决框架,虽然比较老,但也是一款比较经典的框架,阅读它的源码可以学习到关于缓存方面(磁盘)的一些知识,这套框架是由大神jakeWharton编写,相信大家原创 2017-06-28 19:27:24 · 25465 阅读 · 0 评论 -
Android之使用Builder模式封装Dialog和PopupWindow
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/74729925 本文出自:【顾林海的博客】 前言Builder模式的定义是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,也就是说将构建过程和部件的表示隔离开,用户可以在不知道内部构建细节的情况下,对对象的构造流程进行相应的控制原创 2017-07-14 17:09:02 · 26485 阅读 · 1 评论 -
Android之PullToRefresh控件源码解析
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/72935315 本文出自:【顾林海的博客】前言Android-PullToRefresh是一款非常出名的上拉加载和下拉刷新控件,相信同学们都使用过这个控件,Android-PullToRefresh控件内部是如何实现的呢,我们通过阅读源码来一窥究竟。这是它的g原创 2017-06-27 16:57:39 · 27232 阅读 · 4 评论 -
Android之异步消息处理机制Handler源码解析
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/75125971 本文出自:【顾林海的博客】 前言 我们知道在应用启动时会开启一个主线程,也就是UI线程,主线程主要管理与用户交互的UI控件(UI展示,事件分发),如果在主线程中执行耗时操作会触发ANR(Application not respondin原创 2017-07-25 16:31:19 · 25325 阅读 · 0 评论 -
Android之图片加载框架Picasso源码解析
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/76146635 本文出自:【顾林海的博客】 前言picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步原创 2017-08-03 19:15:30 · 25428 阅读 · 0 评论 -
Android之在BaseAdapter源码中了解观察者模式
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/76083113 本文出自:【顾林海的博客】 前言观察者模式也叫发布订阅模式,它是定义如下:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。适用的适用场景主要有关联行为场景,需要注意的是,关联行为是可原创 2017-07-26 14:35:16 · 24635 阅读 · 1 评论 -
Android之组件化开发
转载请标明出处:【顾林海的博客】前言在以前的项目中都是建一个基础库,项目依赖基础库,主项目中集成了所有的功能,这样的化导致主项目的臃肿,并且功能难以拆分,如果是有规模的公司,一般有好几个业务部门,业务部门之间的交流成本高,2015年所在的同程旅游亦是如此,所有项目组的代码都是在同一个项目中,虽然做了包的划分,但还是难以维护,业务的不断增加,代码的数量也会越来越多,单一工程下的架构势必会阻碍开发进度原创 2017-09-12 19:25:35 · 25181 阅读 · 0 评论 -
Android之Retrofit和RxJava的结合使用
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53445072 本文出自:【顾林海的博客】前言Retrofit,一个时尚的代名词,好像不知道Retrofit就不算Android开发工程师了,因此我也来时尚一把,写这篇文章旨在使广大开发者能根据这篇浅薄的文章来了解Retrofit,并将它用到我们的项目中去,当原创 2016-12-15 18:43:01 · 26369 阅读 · 2 评论 -
Android之安装常见的一些解决方法
各位,当安装android的时候,是否会出现一些莫名其妙的情况,本人安装的时候也出现过一些奇怪的问题,我也查了好多资料,现在我就把一些常见的错误解决方法告诉大家,大家有什么新的问题或解决方法,可以留言给我。1、在进行android-sdk-windows中进行 update all时, 报错 folder failed to be renamed or moved...,goole了一下,有...原创 2013-08-30 10:13:57 · 1477 阅读 · 0 评论 -
Android之平台架构
android平台及架构简述 android系统的底层是建立在linux系统之上,是由操作系统、中间件、用户界面和应用软件四层组成。该四层确 保了层与层之间的低耦合,当下层发生改变时,上层应用程序无需做任何改变。(关于android的体系结构可以参考 android官方文档),Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java...原创 2013-09-03 17:08:09 · 2166 阅读 · 0 评论 -
Android之DigitalClock与TextClock的创建
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > ...原创 2014-03-06 15:18:41 · 4010 阅读 · 0 评论 -
Android之底部菜单TabHost的实现
/<span style="font-size:24px;">res/values/styles.xml代码:</span><resources> <style name="main_tab_bottom"> <item name="android:textSize">12.0dip&原创 2014-03-06 15:00:23 · 2367 阅读 · 0 评论 -
Android之SharedPreferences 讲解
<pre code_snippet_id="220451" snippet_file_name="blog_20140306_1_1587302" class="java" name="code">/* * Android数据存储之SharedPreferences * 步骤: * 一、根据Context获取SharedPreferences对象 * 二、利用e...原创 2014-03-06 11:15:21 · 4030 阅读 · 1 评论 -
Android 新手常见的10个误区(下)
原文地址:http://www.developer.com/ws/android/programming/the-10-rookie-mistakes-every-android-developer-should-avoid.html 6,把prototype作为一个Android应用程序的基础直接开发太多次了,我们已经看到一个应用程序,基本上是一个翻译 2013-12-11 13:37:57 · 1483 阅读 · 0 评论 -
Android 新手常见的10个误区(上)
原文地址:http://www.developer.com/ws/android/programming/the-10-rookie-mistakes-every-android-developer-should-avoid.html在过去十年中最流行的移动应用开发开发平台中,我们认为,Android平台是一个新开发的最方便的平台。一个廉价的工具,友好的开发者社区,众所周知的编程语言(Java翻译 2013-12-11 13:36:43 · 1392 阅读 · 0 评论 -
Android之对话框Dialog的创建
今天我们来讲讲android的对话框(Dialog),大家一定很奇怪为什么从4直接跳到7,因为今天我朋友问了我对话框的用法,所以今天就先讲下这个,至于上两章的上下文菜单(ContextMenu)、子菜单(SubMenu)会在后续补上。下面我就把几种常见的方法写给大家: onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这...原创 2013-09-16 14:56:01 · 1919 阅读 · 0 评论 -
打开Eclipse时出现"Failed to create the Java Virtual Machine"
今天被这个坑惨了,找了半天原因,重装还是不行,结果发现出现在eclipse.ini这个文件上 好现在讲讲这么解决这个问题,在文件中你会看到这些内容:-startupplugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar--launcher.libraryplugins/org.eclipse.equi原创 2013-09-12 11:09:04 · 2202 阅读 · 1 评论 -
Android之四大组件概念讲解
在上一节已经讲了一个项目创建完之后,项目内所包含的一些文件以及它们的一些用处,接下来我们就讲讲android应用的一些基本组件。 在android应用中我们最常用的就是Activity,那除了Activity外还有什么呢?android应用中除了Activity外,还包括Service、BroadcastReceiver、ContentProvider等组件。 从哪里讲起,当然...原创 2013-09-05 18:02:16 · 1859 阅读 · 0 评论 -
Android之工程目录介绍
工程结构 在动手开发Android项目时,我们有必要了解下我们的工程,下图是一个完整的项目工程结构:在这里我创建了一个Tes项目,那我们现在看看该项目中包含哪些文件,很显然主要由:src、gen、assets、bin、 libs、res、AndroidManifest.xml.......等等文件(不同android版本所包含的文件略有不同)。 结构讲解src...原创 2013-09-04 17:56:42 · 3336 阅读 · 0 评论 -
Android之解剖网络请求框架Volley
转载请标明出处:【顾林海的博客】Volley介绍Volley是Google推出的网络请求库,包含的特性有JSON、图像等的异步下载、网络请求的排序(scheduling)、网络请求的优先级处理、缓存、多级别取消请求、和Activity和生命周期的联动(Activity结束时同时取消所有网络请求),文章会先将Volley的基本使用,最后会从全局者的角度讲解Volley框架的具体流程以及缓存的相关知识原创 2017-09-21 16:30:27 · 25527 阅读 · 0 评论 -
Android之Android触摸事件传递机制
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53431274 本文出自:【顾林海的博客】前言关于Android事件的分发机制一直是面试的常客,当然,对于自定义View来说,了解事件的分发机制是很有必要的,在日常开发中,由于一些特殊的需求需要我们自定义控件,然而在创建自定义控件中经常会发生事件的冲突,因此需原创 2016-12-02 08:52:13 · 25895 阅读 · 1 评论 -
Android之加载外部dex
转载请标明出处:【顾林海的博客】想要了解插件化,首先得知道如何加载外部的dex文件,这里的插件APK会存放在主APP的assets目录中,用于模拟服务器下载插件。第一步:创建主项目和插件项目先创建我们的主项目,并在项目中创建一个插件依赖库,取名为pluginlibrary,主项目依赖pluginlibrary。主项目创建完毕后,接着创建插件项目,将项目中的app模块复制到主项目并重命...原创 2018-10-09 11:12:15 · 26806 阅读 · 0 评论 -
Android之全面解析OkHttp源码
转载请标明出处:【顾林海的博客】本平台的文章更新会有延迟,大家可以关注微信公众号-顾林海,更有Android、后端、Python、PHP、IOS以及React Native等等相关视频教程,如果大家想获取最新教程,请关注微信公众号,谢谢!前言OkHttp是目前非常火的网络库,支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接,连接池减少请求延时,透明的GZIP...原创 2018-10-27 15:38:49 · 25080 阅读 · 0 评论 -
Android之全面解析Retrofit网络框架封装库
转载请标明出处:【顾林海的博客】前言Retrofit是Square公司推出的一个HTTP的框架,主要用于Android和Java,Retrofit会将每一个HTTP的API请求变成一个Java的接口,使用起来非常方便,同时Retrofit又是一个Restful HTTP的网络请求框架的封装。介绍与使用在上图中,我们会在应用层发起网络请求,同时请求会经过Retrofit这层,Retr...原创 2018-11-06 13:39:30 · 24269 阅读 · 0 评论 -
深入浅出Android系统启动流程
转载请标明出处:【顾林海的博客】init进程启动过程init进程概述&nbsp; &nbsp; &nbsp; &nbsp;Android系统基于Linux,init进程是Android系统中用户空间的第一个进程,进程号为1,init源代码在system/core/init目录下。既然init进程是Android系统用户空间的第一个进程,因此担负着非常重要的责任,主要负责以下两件事:解...原创 2019-01-03 17:38:09 · 22247 阅读 · 0 评论 -
深入浅出Service启动流程
转载请标明出处:【顾林海的博客】本篇文章已授权微信公众号 顾林海 独家发布Service启动方式有两种,一种是通过Context的startService启动Service,另一种是通过Context的bindService绑定Service,下面对这两种启动方式的启动流程进行详细的讲解。startService的启动流程通过startService方法启动Service会调用Con...原创 2019-01-12 11:52:09 · 21665 阅读 · 0 评论 -
深入浅出Activity插件化相关原理
转载请标明出处:【顾林海的博客】本篇文章已授权微信公众号 顾林海 独家发布Activity的插件化解决的一个根本性问题就是插件中的Activity并没有在宿主的AndroidManifest.xml中进行注册,也就是说我们需要启动一个未注册的Activity,因此需要对Activity的启动过程有个了解。启动Activity时会请求AMS创建Activity,这里的AMS指的是Acti...原创 2019-01-25 23:45:52 · 32920 阅读 · 0 评论 -
深入浅出Service插件化原理
转载请标明出处:【顾林海的博客】本篇文章已授权微信公众号 顾林海 独家发布Service插件化的重点是保证它的优先级,需要一个真正的Service来实现,当启动插件Service时,就会先启动代理Service,当这个代理Service运行起来后,在它的onStartCommand等方法里面进行分发,执行插件Service的onCreate等方法,这种方案叫代理分发。也就是在启动插件...原创 2019-01-29 09:11:32 · 32172 阅读 · 0 评论 -
深入浅出换肤相关技术以及如何实现
温馨提示:阅读本文需要60-70分钟微信公众号:顾林海完成换肤需要解决两个问题:如何获取换肤的View,利用LayoutInflater内部接口Factory2提供的onCreateView方法获取需要换肤的View,我们从setContentView方法的具体作用来了解LayoutInflater.Factory2接口的作用,以具体源码进行分析,MainActivity代码如下:...原创 2019-02-20 17:45:09 · 44211 阅读 · 2 评论 -
Android之ActivityManagerService详解(APP启动过程)
转载请标明出处:【顾林海的博客】前言AMS(ActivityManagerService)的启动是在SystemServer进程中启动的,它的职责是用于和所有APP的四大组件进行通信,Activity的启动过程就是APP端与AMS端进行通信,首先理解的一点是APP端与AMS是在两个不同的进程中,因此APP端与AMS是通过跨进程通信的。从Launcher启动APPLauncher就是指...原创 2018-10-18 16:53:18 · 31169 阅读 · 1 评论 -
Android之Binder和AIDL原理
转载请标明出处:【顾林海的博客】前言插件化技术火热已久,为什么会有插件化,时势造英雄吧,随着移动互联网的快速发展,业务的飞速增长,如何在有限时间给用户提供高质量的APP,当线上出现各种BUG,如何快速修复并发布上线,插件化的意义也就在这里了。目前插件化解决方案分为两个方向,一是以张勇的DroidPlugin框架为代表的动态替换方案,对Android底层的各种类进行Hook,来达到加载插件...原创 2018-09-29 10:02:11 · 31179 阅读 · 0 评论 -
Android之EasyPermissions源码解析
转载请标明出处:【顾林海的博客】前言我们知道在Android中想要申请权限就需要在AndroidManifest配置文件中通过uses-permission标签设置申请的权限,通过这种方式申请权限固然方便,但在安全性方面却不高,比如开发者申请获取用户隐私的权限,这样用户在不知情的情况下获取到了用户的隐私,如何避免这种不安全的权限获取?从Android 6.0开始,Googl...原创 2018-08-20 18:16:25 · 25990 阅读 · 1 评论 -
Android之View的绘制流程解析
转载请标明出处:【顾林海的博客】前言自定义View在Android中占据着非常重要的地位,因此了解View的绘制流程对自定义View来说尤其重要,View的绘制流程总的来说包含测量、布局和绘制三个流程,本篇会对这三个流程进行详细的讲解,力求对View的绘制流程有清晰的认识。视图绘制Activity代表着一个用于与用户进行交互的窗口,通常启动一个Activity时,会通过setContentView原创 2017-12-20 18:32:25 · 24391 阅读 · 0 评论 -
Android之AsyncTask源码解析
转载请标明出处:【顾林海的博客】前言AsyncTask是一种轻量级的异步任务类,内部封装了Thread和Handler,通过AsyncTask执行后台任务以及在主线程中访问UI控件,但AsyncTask在Android 1.6之前是串行任务,在Android 1.6时AsyncTask采用线程池处理并行任务,又在Android 3.0开始采用一个线程串行执行任务,所以在使用AsyncTask时需要原创 2017-11-24 19:14:21 · 25154 阅读 · 0 评论 -
Android之Butterknife原理解析
转载请标明出处:【顾林海的博客】前言Butterknife是一个专注于Android系统的View注入框架,可以简化代码,比如findViewById、事件监听、资源绑定等,同时该框架使用了编译时注解,可能大家一听到编译时注解就认为这种方式会影响性能,其实编译时注解并不会影响应用的性能,这是因为编译时注解是在代码编译过程中对注解进行处理,生成代码,这些代码在运行时调用,除了编译时注解,还有一个是运原创 2017-12-18 13:14:08 · 28370 阅读 · 1 评论 -
Android小知识-Fragment
转载请标明出处:【顾林海的博客】前言今天还是总结下Android中的小知识点Fragment,Fragment使用广泛,有自己的生命周期(必须依附Activity),动态灵活的加载到Activity中去,Android 3.0 引入,常用模式有Fragment+ViewPager。Fragment加载到Activity的两种方式添加Fragment到Activity的...原创 2018-02-27 11:58:36 · 25340 阅读 · 0 评论 -
Android之了解ThreadLocal
转载请标明出处:【顾林海的博客】前言很长时间没写博客,不是自己懒,而是在这段时间在思考要写什么,以及自己的发展方向,之前的自己很浮躁,总想表现什么,这其实对技术人来说是不好的,把心沉淀下来,找准方向,再一步步去实现,幸运的是自己又找到自我,这篇文章就讲讲一个小知识点ThreadLocal。强调ThreadLocal与多线程并发没有任何关系,ThreadLocal解决...原创 2018-02-25 09:36:09 · 25733 阅读 · 0 评论