Android技术
文章平均质量分 87
victorfreedom
追求极致
展开
-
自由笔记-AndroidView模块之WindowManager相关分析
所有和Activity相关的Window初始化都在Activity的attach方法里面,该方法会在Activity被创建的时候执行Window:窗体抽象类,主要实现对象是PhoneWindow,主要成员:// 创建窗口默认会创建对应的窗体布局参数private final WindowManager.LayoutParams mWindowAttributes =new W...原创 2020-04-07 16:20:55 · 375 阅读 · 0 评论 -
自由笔记-AndroidView模块之自定义View画布相关
1、Paint的基本实用方法和技巧(1)基本的使用1.1 负责图形绘制相关//重置mPaint.reset();mPaint.setColor(Color.RED);mPaint.setAlpha(255);//设置画笔的样式mPaint.setStyle(Paint.Style.FILL);//填充内容mPaint.setStyle(Paint.Style.F...原创 2020-04-07 16:19:21 · 206 阅读 · 0 评论 -
自由笔记-AndroidView模块之View绘制流程分析
View绘制流程:起始点为ViewRootImp的performTraversals方法。在该方法中调动这3个方法来触发以下3个流程performMeasure(childWidthMeasureSpec, childHeightMeasureSpec);performLayout(lp, desiredWindowWidth, desiredWindowHeight);perfo...原创 2020-04-07 16:16:43 · 223 阅读 · 0 评论 -
自由笔记-AndroidView模块之View加载流程分析
Activity启动时,View加载到Window流程1、Window类,是一个抽象类,Window可以理解为一个载体,所有视图View的载体。2、PhoneWindow,Window的主要实现体,该类内部包含了一个DecorView对象,该DectorView对象是所有应用窗口(Activity界面)的根View。简而言之,PhoneWindow类是把一个FrameLayout...原创 2020-04-07 16:16:02 · 195 阅读 · 0 评论 -
自由笔记-AndroidView模块之View触摸事件分发机制分析
相关方法介绍:dispatchTouchEvent方法:事件的分发。返回值一般由里面的onTouchEvent方法或者下架View的dispatchTouchEvent方法决定。onInterceptTouchEvent:事件的拦截,如果Down事件一旦拦截了,那么之后的move和up事件也会一起拦截。事件不会在向下传递。onTouchEvent:事件的处理。如果在子View中设定了m...原创 2020-04-07 16:14:02 · 201 阅读 · 0 评论 -
自由笔记-AndroidView模块之WebView
1、webView的状态onResume:激活webview为活跃状态,能正常执行网页响应。onPasue:当页面失去焦点或者不可见状态,执行该方法,表示通知内核暂停所有动作。pauseTimers,当前应用程序被切换到后台的时候,该方法会通知全局应用程序的webView暂停所有绘制,解析等动作,降低CPU功耗resumeTimers退出释放private vo...原创 2020-04-07 16:12:44 · 502 阅读 · 0 评论 -
自由笔记-Activity之启动模式简介
启动模式这里笔记记得比较简单,随意看看就好“standard” (默认)“singleTop”“singleTask”“singleInstance”它们主要有如下不同:1)如何决定所属task“standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVIT...原创 2020-04-07 16:11:18 · 117 阅读 · 0 评论 -
自由笔记-Activity之启动流程分析
Activity框架和管理结构Activity管理的核心是AcitivityManagerService,是一个独立的进程;ActiveThread是每一个应用程序所在进程的主线程,循环的消息处理;ActiveThread与AcitivityManagerService的通信是属于进程间通信,使用binder机制,通过ApplicationThread这个桥梁进行通信Applica...原创 2020-04-07 16:06:03 · 238 阅读 · 0 评论 -
自由笔记-Activity之Context相关
1、Activity、Service、Application都是Context的子类2、Activity、Service、Application都是继承自ContextWrapper,而ContextWrapper内部会包含一个base context,由这个base context去实现了绝大多数的方法。这个baseContext是一个ContextImp,实现了和四大组件相关的大多数方...原创 2020-04-07 16:04:53 · 205 阅读 · 0 评论 -
Android开发架构设计之健壮且可读的安卓架构(下篇)
原文地址:http://blog.joanzapata.com/robust-and-readable-part-2-introducing-async-service/健壮且可读的安卓架构(二)注意:阅读这篇文章之前请阅读第一部分我收到很多关于我的架构设计的评论和反馈,特别感谢每周安卓社区(Android weekly),你们中的一切人注意到我的架构中的一些弱点,或者翻译 2015-03-22 12:49:18 · 1162 阅读 · 1 评论 -
Android开发架构设计之健壮且可读的安卓架构(上篇)
博主这几个星期都比较忙,刚入职新公司,有太多的东西需要去熟悉,比如公司的代码,新的开发工具,博主已经弃用eclipse转用AS了。不过发现AS这个玩意确实比eclipse好用,而且现在github上的一些项目已经是AS结构,所以建议同学们也开始转用AS吧。这篇文章是博主最近在学习一个新的开源框架snappyDB的时候发现的,觉得写得很不错,网上已经有了原文的翻译,但这只是第一部分,原作者在去年转载 2015-03-22 12:36:07 · 1268 阅读 · 0 评论 -
Android开发之浅谈广播的运用
之前讲过了activity,服务service和内容提供者,四大组件就还差广播没讲,所以就顺便讲讲吧。当然,这里都是很基础的讲解,没有深入,要是深入的话光一个activity就可以讲很久。所以这里只做基础使用的讲解了。时间紧迫,直接上代码吧。首先,广播有两种注册方式,一种在清单文件中注册,注册后程序一运行广播就开始监听。一种在代码中注册,根据需求注册注销广播。我们先看广播的第一种注册方原创 2015-02-28 21:25:50 · 2292 阅读 · 0 评论 -
Android开发之浅谈内容提供者provider的使用
大家新年好。博主刚回到广州就要各种忙。博主换了份工作,所以昨天一来到广州就忙着找房子,好在昨晚就已经搞定。时间比较紧迫,这篇文章就直接将如何使用provider了。内容提供者一般用于进程之间通信,当一个app需要访问另外一个app的数据库内容的时候,就需要用到内容提供者。为了节约时间,博主直接偷懒上代码了,直接拿博主之前写过的一个短信项目来上了。首先,定义一个内容提供者package原创 2015-02-28 11:55:15 · 711 阅读 · 0 评论 -
Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载
上一篇专题Android开发之网络请求通信专题(一):基于HttpURLConnection的请求通信我们讲解了如何使用httpurlconnection来实现基本的文本数据传输。一般在实际开发中我们可以用于传输xml或者json格式的数据。今天我们来讲解另外一种http网络请求的方式:httpclient,并实现文件的上传和下载。在这里插个题外话,其实这些网络请求有很多第三方jar包可以使用原创 2015-01-25 23:27:00 · 3819 阅读 · 0 评论 -
Android开发之网络请求通信专题(一):基于HttpURLConnection的请求通信
在Android开发中,网络请求必然是必不可少。一般而言,都是基于http的网络请求。有时候也会有SOCKET请求,这个后续的专题再讲。今天,我们就先讲讲常用的Http请求。http求情自然是遵循http协议的,相关内容请转接:Java学习笔记之Http协议详解好了,开始今天的正题。一、基础HTTPURL请求方式我们先来看一个最简单的例子,通过get方法请求拿到返回值1原创 2015-01-24 16:50:14 · 2571 阅读 · 0 评论 -
Android开发之自定义View专题(四):自定义ViewGroup
有时候,我们会有这样的需求,一个activity里面需要有两个或者多个界面切换,就像Viewpager那样。但是在这些界面里面又需要能够有listView,gridview等组件。如果是纵向的,似乎还好,没什么影响,那么如果是横向的,那么就会出事情。因为Viewpager会拦截触摸事件。而如果将Viewpager的触摸事件拦截掉给里面的子控件,那么Viewpager又不能响应滑动事件了。那么如何又原创 2015-01-05 19:25:41 · 919 阅读 · 0 评论 -
Android开发之JNI调用本地C库专题(一):JNI的使用
JNI,是用于开发本地C函数库的技术。用于链接JAVA和C或者C++语言的桥梁。在部分android项目开发中,我们是需要用到这项技术的。那么废话不多说,进入正题。开发JNI,需要用到NDK,这个大家应该都知道了。还需要一个linux的开发环境。一般而言,可以使用虚拟机装一个ubantu,博主以前就是搞linux开发的,这点还是比较熟悉。但是对于大部分android开发者而言,弄一个虚拟机成本原创 2015-01-21 22:54:29 · 2869 阅读 · 0 评论 -
Android开发之自定义View专题(三):自定义GridView
gridview作为android开发中常用的组件,其功能十分强大。但是,我们有时候有很多特殊的需求,需要在其基础上进行改造。有时候会有移动gridView中item位置的需求,这个网上已经有很多例子,博主就不在描述。今天博主讲的是移动gridView中item中的内容。博主没看过网上那些移动item位置的demo,不知道其原理是不是和博主想的一样。博主思考过,似乎博主的这种实现原理似乎也可以用作原创 2015-01-04 22:13:33 · 2257 阅读 · 2 评论 -
Android开发之自定义View专题(二):自定义饼图
在图表里面,常用的图标一般为折线图、柱形图和饼图,上周,博主已经将柱形图分享。在博主的项目里面其实还用到了饼图,但没用到折线图。其实学会了其中一个,再去写其他的,应该都是知道该怎么写的,原理都是自己绘制图形,然后获取触摸位置判定点击事件。好了,废话不多说,直接上今天的饼图的效果图这次也是博主从项目里面抽离出来的,这次的代码注释会比上次的柱形图更加的详细,更加便于有兴趣的朋友一起学习原创 2015-01-03 16:14:52 · 2039 阅读 · 0 评论 -
Android开发之JNI调用本地C库专题(二):Android增量更新
增量更新,是应用升级的一项技术,他可以节约用户的流量,只需要下载和当前版本的差异包即可更新。关于增量更新,网上有很多的文章写得很好,包括将库文件打包成jar包移动使用的都讲解得很详细,在看了之前的jni技术后,相信大家都可以自己写出来,在这里博主就不在详细写了。有个地方可以注意一下,在解压bzip2包中的文件到jni目录中,可以不用全部的写入,只需要将.mk文件中的.c文件解压和.h头文件解压转载 2015-01-21 23:12:56 · 1032 阅读 · 0 评论 -
Android开发之JSON数据解析和生成
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。原创 2014-11-30 21:51:39 · 1287 阅读 · 0 评论 -
Android开发之XML文件解析
1.XML概述1.1XML:XML一种数据存储格式,这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系1.2XML保存数据的方法:XML利用标签来保存数据的内容,利用标签之间的嵌套关系来保存数据之间的关系。1.3XML的应用场景:1.3.1利用XML跨平台的特性,用来在不同的操作系统不同的开发语言之间传输数据。如果说java是一门跨平台的语言,那XML就是跨平台的数据。原创 2014-11-24 00:33:35 · 740 阅读 · 0 评论 -
Android开发之XML文件生成
昨天我们做了XML文件的内容解析原创 2014-11-25 00:31:22 · 604 阅读 · 0 评论 -
Android开发性能优化总结
性能优化是android开发中的一大难点,一般而言开发中常用的优化方法有建立缓存,listView的view复用,static变量的合理使用,图片异步加载,软弱应用的使用,xml布局文件的优化,viewStub的使用等。博主最近想写一篇关于性能优化的专题,但是发现网上有一篇写的很好的文章了,就拿来和大家一起分享吧。本文转自:Android性能优化总结前言性能优化本身是一个很转载 2015-01-29 09:34:23 · 731 阅读 · 0 评论 -
SQL学习笔记之数据库专题(二):Android下SQL数据库开发
在Android开发 中,数据库是不可缺少的。在Android开发中,用的是一种小型的嵌入式数据库,sqllite。今天会写两篇关于Android开发环境下数据库开发的文章,第一篇先介绍使用android自带的API来实现数据库的使用和管理以及增删改查、数据库升级的相关操作。一、数据库第一次生成1、javabean文件的准备这里以一个Person类为例子来描述package c原创 2015-01-10 16:01:55 · 1089 阅读 · 0 评论 -
Android开发之图片处理专题(一):利用软引用构建图片高速缓存
在Android开发中,图片处理是一个难点。对于大量的图片处理,一不小心就会出现OOM的错误。那么,构建缓存,就是非常必要的一个手段。利用软引用构建缓存,只是其中步骤之一,我们来看看一般情况下,图篇处理的流程。一般而言,图片的处理流程大致如上,之前所说的Xutils的原理,也如此。今天,我们就先讲讲如何利用软引用技术来构建高速缓存。一、对象的四种引用在JDK 1.2以前的版原创 2015-01-30 16:54:25 · 1809 阅读 · 2 评论 -
SQL学习笔记之数据库专题(三):Android下Sqlite数据库ORM框架之GreenDao详解
在大型项目中,android的数据库操作不可能再像第二篇文章那样,用最基础的API去实现各方面的操作,那样效率会十分的底下。那么,在android开发中,提拱了androrm,Ormlite,greenDao三个主流框架,博主三生有幸,再开发第一个项目的时候,就被逼着学习使用greenDao这个ORM框架。现在回过头看,greenDao似乎是三种框架中效率最高的,但是对于初学者来说,使用起来非常的原创 2015-01-10 17:39:25 · 3981 阅读 · 3 评论 -
Android开发之tween(补间动画)动画及其使用场景(界面切换、弹窗等)详解
在Android开发中,我们常见一些很绚丽的动画效果。这些动画效果使得我们的应用用起来非常的绚丽。那么今天就来讲讲Android开发中,常用的动画效果吧。在Android开发中,有帧动画和补间动画两种1、逐帧动画是在时间帧上逐帧绘制帧内容,由于是一帧一帧的画,所以逐帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容。但是在开发中,我们不常用这个动画。2、与逐帧动画相比,补间原创 2014-12-22 21:47:49 · 1987 阅读 · 0 评论 -
Android开发之图片处理专题(二):利用AsyncTask和回调接口实现图片的异步加载和压缩
在上一篇专题Android开发之图片处理专题(一):利用软引用构建图片高速缓存中我们讲述了如何利用软引用技术构建高速缓存。那么想要用到图片,首先得有图片的来源。一般而言,一个应用的图片资源都是从服务器处获得的。今天,我们利用Android开发之网络请求通信专题(二):基于HttpClient的文件上传下载里面封装好的httpUtils来实现图片的下载,然后加载到本地并使用,以一个listView为原创 2015-01-31 23:29:57 · 1885 阅读 · 0 评论 -
Android开发之状态选择器(selector)详解
这些天博主的项目进度比较快,现在服务器那端进度较慢,所以博主晚上最近会比较有时间,所以最近会多写些博客出来和大家分享~希望能够帮助到大家。所谓状态选择器,就是控件(view或者viewgroup)的状态发现变化的时候,我们可以再指定的状态下,切换控件的背景属性(background),从而达到效果绚丽的目的。先随便看一个例子: 可以看到原创 2014-12-23 21:03:20 · 6220 阅读 · 1 评论 -
Android开发之图片处理专题(三):利用ThreadPoolExcutor线程池实现多图片的异步加载
在上一篇专题Android开发之图片处理专题(二):利用AsyncTask和回调接口实现图片的异步加载和压缩中我们实现了listView的图片的大量加载。今天,我们换一种方式,采用线程池的方式来实现。我们需要准备两个东西:1、图片下载任务类2、线程池。1、图片下载任务类。图片下载任务类,将需要显示的iamgeView,线程通讯消息管理者handler进行了封装。当图片下原创 2015-02-01 22:53:28 · 2068 阅读 · 1 评论 -
Android开发之Dialog\popupindow\windowManager的区别及自定义方法详解
在Android开发中,有三种可以弹出的窗体可以使用,一种是Dialog,一种是popupindow,还有一种是最原始的方法,我估计也是dialog和popupwindow的实现原理,用windowManger添加自定义view窗体。一、Dialog和popupwindow的区别这两者都是弹窗,但有本质上的区别。Dialog是非阻塞式弹窗,Dialog弹出来后,后台还在做其他事情。原创 2014-12-23 22:13:29 · 2604 阅读 · 0 评论 -
Android开发之全局异常捕获完美闪退APP专题
其实写这边文章之前,一直在考虑要不要标注为原创,因为全局异常捕获的机制,自己也是看了别人的文章学来的,百度全局异常捕获,出来的也都是一模一样的内容,只是博客位置不一样而已。但是最后要是决定标准为原创,因为网上的那些全局异常捕获的文章,虽然交代了如何去处理全局异常捕获,但是却没有完美的处理捕获异常之后该做的事情。既没有完美的退出程序。博主在使用网上提供的全局捕获异常之后,不是ANR就是只退出了报错的原创 2014-12-25 23:49:18 · 17426 阅读 · 3 评论 -
Android开发之自定义View专题(一):自定义柱形图
博主之前做的项目中,需要用到报表功能,之前在网上百度谷歌各种结果,没有一个是能够满足博主的老板的需求的,无奈之前博主只好自己去研究。终于研究出了一个不错的结果。先上效果图:这是博主的一个项目的一个报表。老板要求可以点击左侧的月份进行月份比较,也可以点击选择月份,右边柱形图条状是可以响应点击事件的,并且可以左右滑动切换月份,如果柱形图内容过长超出界面,也是可以左右滑动查看未显示全的内容的。这里只原创 2014-12-28 22:31:25 · 2781 阅读 · 9 评论 -
Android开发之基于MINA框架的聊天通信功能实现
基于Android客户端的MINA框架的通信开发原创 2014-12-15 00:19:34 · 6616 阅读 · 5 评论 -
Android开发之binder机制详解
此文为转载文章,但是转载处没有标记处转载地址,故这里也不能写出转载地址。另外在推荐一篇关于binder机制讲解的文章:Android深入浅出之Binder机制1.binder通信概述 binder通信是一种client-server的通信结构, 1.从表面上来看,是client通过获得一个server的代理接口,对server进行直接调用; 2.实际上转载 2015-02-08 22:44:22 · 1239 阅读 · 0 评论 -
Android开发之Service服务详解
服务,作为Android四大组件之一,必然是重点。我们今天就来讲解一下有关服务的生命周期、两种开启方式以及相关用法。服务有两种开启方式,一种是正常开启, 一种是以绑定的方式开启,当然,这两种方式可以组成混合开启。一、服务的正常开启正常开启服务的方法非常简单,我们先看如何定义一个服务1、编写一个类,继承Service类。 我们先不管代码中的binder类。那个后续讲解原创 2015-02-08 00:03:38 · 1078 阅读 · 0 评论 -
Android开发之Activity管理
在Android开发中,Activity扮演者非常重要的角色。那么有效的管理Activi原创 2014-11-17 00:32:38 · 1601 阅读 · 1 评论