
android学习总结
汇总近年来学习android开发的经验
A一剑飞鸿
书山有路勤为径,学海无涯苦作舟。
展开
-
RoboSpice:android异步网络库
android的开源网络库 RoboSpice, RoboSpice是一个使你建立异步的长时间的运行任务异常轻松的一个网络库,在网络请求,缓存支持,和提供开箱即用的rest请求方面尤为强大,想在30秒内快速学习,请访问this infographics。主要特性:supports Android starting from SDK version 8 (Froyo / 2.2.x)支持 SDK版原创 2018-01-15 09:49:46 · 479 阅读 · 0 评论 -
Android之Merge与ViewStub布局标签
1 MergeMerge作为A布局根标签,其他布局文件B通过include引用A时,Merge标签会被去掉,在include里存放的是merge的子标签,以此减少布局文件的层次。<merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too原创 2018-01-10 11:42:50 · 268 阅读 · 0 评论 -
Android文件下载资料整理
[Android快速实现文件下载(只有4行代码)(https://www.jianshu.com/p/46fd1c253701)原创 2018-01-10 11:30:31 · 193 阅读 · 0 评论 -
Android 线程优先级
1.Android线程的优先级和设置方法Android线程的优先级和设置方法。Android线程大方向上来说,可以分为UI线程和background线程,如果从UI线程启动,则该线程优先级默认为Default,归于defaultgroup,会平等的和UI线程争夺CPU资源。这一点尤其需要注意,在对UI性能要求高的场景下建议将线程设置为background线程:Process.setThreadPri原创 2018-01-10 14:33:12 · 4754 阅读 · 1 评论 -
Android Activity卡顿原因总结
内存泄漏导致内存占用较高,导致JVM频繁触发GC。解决办法:尽可能的减少生命周期长的对象引用生命周期短的对象。导致内存泄漏的原因有一下几个: 1.查询数据库后没有关闭游标cursor,各种资源文件没有close。 2.构造Adapter时,没有使用convertView重用 3.Bitmap对象不再使用时没有调用recycle释放内存 4.静态变量引用对象原创 2018-01-10 18:27:45 · 2814 阅读 · 0 评论 -
android 调用js中的方法
Android中可以使用WebView加载网页,同时Android端的java代码可以与网页上的javascript代码之间相互调用。一 Android部分: 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/to原创 2018-01-11 16:23:05 · 417 阅读 · 0 评论 -
Android设计模式之策略模式
看下策略模式的定义: 策略模式定义了一些列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变换。乍一看,也没看出个所以然来。举个栗子吧。 假设我们要出去旅游,而去旅游出行的方式有很多,有步行,有坐火车,有坐飞机等等。而如果不使用任何模式,我们的代码可能就是这样子的。public class TravelStrategy { enum S原创 2018-01-12 15:47:30 · 820 阅读 · 0 评论 -
Android观察者模式简单实现
观察者模式就是:当一个对象的状态发送改变时,所有依赖于它的对象都能得到通知并被自动更新。下面介绍一种简单的使用方法,(下面有demo链接)先看一下project的目录构成: ObserverListener是观察者接口,SubjectListener是被观察者接口,ObserverManager是观察者的管理类。/** * Created by Administrator on 2016/9原创 2017-09-30 10:26:54 · 1026 阅读 · 0 评论 -
Android设计模式之观察者模式
观察者模式(Observer Pattern)定义对象间的一种一个(Observable)对多(Observer)的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。当然,MVC只是Observer模式的一个实例。Observer模式要解决的问题为:建立一个一(Observable)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多转载 2017-09-30 11:35:39 · 670 阅读 · 0 评论 -
android视频播放器缓存
今天介绍一个视频离线缓存的框架,由于视频播放的时候下载多次是没有意义的。今天介绍的AndroidVideoCache支持VideoView/MediaPlayer, ExoPlayer等播放器实现离线缓存功能。主要特征:流媒体磁盘缓存;资源离线缓存;局部加载;缓存限制 (最大缓存大小, 最大文件数);支持多客户端.注意,AndroidVideoCache只对媒体文件使用直接url,它不支原创 2017-09-22 18:03:58 · 7142 阅读 · 2 评论 -
Gradle for Android(四)
## 第四篇( 构建变体 ) 当你在开发一个app,通常你会有几个版本。大多数情况是你需要一个开发版本,用来测试app和弄清它的质量,然后还需要一个生产版本。这些版本通常有不同的设置,例如不同的URL地址。更可能的是你可能需要一个免费版和收费版本。基于上述情况,你需要处理不同的版本:开发免费版,开发付费版本,生产免费版,生产付费版,而针对不同的版本不同的配置,这极大增加的管理难度。Gradl...原创 2017-09-22 13:50:03 · 775 阅读 · 0 评论 -
Gradle for Android(三)
第三篇( 依赖管理 )依赖管理依赖管理是Gradle最闪耀的地方,最好的情景是,你仅仅只需添加一行代码在你的build文件,Gradle会自动从远程仓库为你下载相关的jar包,并且保证你能够正确使用它们。Gradle甚至可以为你做的更多,包括当你在你的工程里添加了多个相同的依赖,gradle会为你排除掉相同的jar包。在这一章我们将学习以下内容:仓库本地依赖详解依赖这一概念...原创 2017-09-22 13:49:03 · 650 阅读 · 0 评论 -
Gradle for Android(二)
第二篇( Build.gradle入门 )在这一章,我们将学习以下内容:理解Gradle文件编写简单的构建任务自制构建脚本理解Gradle脚本当然我们现在讨论的所有内容都是基于Android studio的,所以请先行下载相关工具。当我们创建一个新的工程,Android studio会默认为我们创建三个gradle文件,两个build.gradle,一个settings...原创 2017-09-22 13:48:08 · 767 阅读 · 0 评论 -
Gradle for Android(一)
第一篇( 从 Gradle 和 AS 开始 )如果你是名Android开发新手,或者是名从eclipse切换到Android studio的新手,那么我强烈建议您follow我的文章,正如封面所见,利用gradle构建工具来自动构建你的Android项目。废话不多说,我们直接开始吧。今天主要介绍Android studio工具的使用,以及cradle基础入门,使用cradle wrap...原创 2017-09-22 13:46:53 · 763 阅读 · 0 评论 -
2017最酷的 30 个 Android 库
这里是 30 个我最喜欢的在 2017 年 3 月前新出现的 Android 库。其中一些并没有用于实际产品,但你使用它们可能会得到很多的乐趣。我希望你们喜欢这些库。下面的顺序不代表排名:1.Matisse这是一个漂亮的本地图片、视频选择器。其主要功能有:选择包括JPEG、PNG、GIF格式的图片和 MPEG、MP4 格式的视频支持自定义主题,包括两个内置的主题不同的图片加载器定义自定义过滤规则在原创 2017-09-13 10:12:46 · 984 阅读 · 2 评论 -
android 日历源码
android 源码 日历原创 2015-12-29 20:51:13 · 2247 阅读 · 0 评论 -
Android DrawerLayout 高仿QQ5.2双向侧滑菜单
android 自定义控件 QQ侧滑效果 android 开发 DrawerLayout转载 2015-12-30 10:43:21 · 694 阅读 · 0 评论 -
GitHub优秀的Android 开源项目(二)
GitHub上优秀Android开源项目转载自 : http://my.eoe.cn/sisuer/archive/3348.html http://my.eoe.cn/sisuer/archive/3474.html http://my.eoe.cn/sisuer/archive/3348.html GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHu转载 2016-01-05 13:55:13 · 1006 阅读 · 0 评论 -
GitHub优秀的Android 开源项目(一)
转自:http://blog.youkuaiyun.com/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、EditText、TableView、Acti转载 2016-01-05 13:53:12 · 1184 阅读 · 0 评论 -
Android 编程下 Touch 事件的分发和消费机制
Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup、View、Activity。方法与控件的对应关系如下表所示:Tou原创 2016-01-08 17:58:29 · 542 阅读 · 0 评论 -
根据Uri获取图片绝对路径,解决Android4.4以上版本Uri转换
/** * 根据Uri获取图片绝对路径,解决Android4.4以上版本Uri转换 * @param activity * @param imageUri * @author yaoxing * @date 2014-10-12 */ @TargetApi(19) public static String getImageAbsolutePath(Activity co原创 2016-01-22 16:46:46 · 1482 阅读 · 0 评论 -
android中常见的设计模式有哪些?
android 中常见的设计模式原创 2017-08-29 15:29:21 · 421 阅读 · 0 评论 -
如何解决65535问题
如何解决65535问题 Android Studio原创 2017-08-30 09:16:13 · 7048 阅读 · 1 评论 -
谈谈对Android中的消息机制的理解
谈谈对Android中的消息机制的理解Android中的消息机制主要由Handler、MessageQueue、Looper三个类组成,他们的主要作用是Handler负责发送、处理MessageMessageQueue负责维护Message队列Looper负责Message的轮询Android的消息机制主要是为了在子线程中处理的数据可以在主线程更新UI,完成从子线程到主线程的切换。而Andr原创 2017-08-30 09:19:01 · 305 阅读 · 0 评论 -
谈谈对Application类的理解
谈谈对Application类的理解其实说对什么的理解,就是考察你对这个东西会不会用,重点是有没有什么坑!首先,Application在一个Dalvik虚拟机里面只会存在一个实例,所以你不要傻傻的去弄什么单例模式,来静态获取Application了,你把Application构造函数设置成privete都不可能实现(我初学阶段的时候就这么傻傻的试过,想着如果可以通过Singleton.getInst原创 2017-08-30 09:26:40 · 445 阅读 · 0 评论 -
谈谈你对Activity生命周期的理解
谈谈你对Activity生命周期的理解首先,为什么Activity要有生命周期呢?我觉得这是移动设备的硬件特性和交互特性决定的。首先从硬件上来说,移动设备不像是PC平台,它的CPU、内存、电量都受到了限制,特别是电量,你必须要保证开发出的App既能够满足用户需求,又不能很随意的去使用CPU进行高密度计算工作,所以如果用户临时不使用App的时候,要有一个机制来告诉我们开发的App:用户现在暂时不用了,原创 2017-08-31 09:04:10 · 670 阅读 · 0 评论 -
使用Sqlite时有哪些可以优化的地方
使用Sqlite时有哪些可以优化的地方创建索引索引有助于加快 SELECT 查询和 WHERE 子句,但它会减慢使用 UPDATE 和 INSERT 语句时的数据输入。索引可以创建或删除,但不会影响数据。优点加快了数据库检索的速度,包括对单表查询、连表查询、分组查询、排序查询。经常是一到两个数量级的性能提升,且随着数据数量级增长。缺点索引的创建和维护存在消耗,索引会占用物理空间,且随着数据量的增加而原创 2017-08-31 09:07:35 · 804 阅读 · 0 评论 -
Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递?
Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递?Bundle内部是由ArrayMap实现的,ArrayMap的内部实现是两个数组,一个int数组是存储对象数据对应下标,一个对象数组保存key和value,内部使用二分法对key进行排序,所以在添加、删除、查找数据的时候,都会使用二分法查找,只适合于小数据量操作,如果在数据量比较大的情况下,那么它的性能将退化。而H原创 2017-08-31 09:54:58 · 331 阅读 · 0 评论 -
Android图文混排实现方式详解
在使用TextView的时候,我们经常需要在TextView中进行图文混排,比如在QQ中聊天的消息中的表情,底部tab图标等。一、场景二、实现方式Android官方对TextView的图文混排提供了支持,我们可以从以下三种方式实现TextView的图文混排:1.在TextView中使用Compound Drawable属性; 2.在TextView中使用Spannable多样式显示; 3.在T原创 2017-09-12 16:40:44 · 675 阅读 · 0 评论 -
Android Live Wallpaper
Android Live Wallpaper,这篇教程讲解android透明屏幕的实现方式。它以eclipse4.2、java 1.6、android4.1位基础。1. 提前预习 下面的教程假设您已经掌握了android开发的基本知识 Android development。Android开发教程,学习基本知识,可以参考这个教程:http://www.vogella.co翻译 2017-09-12 18:53:14 · 2595 阅读 · 0 评论 -
android ViewFlipper屏幕切换
大家好,今天给我将介绍ViewFlipper屏幕切换,屏幕切换指的是在同一个Activity内屏幕间的切换,最常见的切换例如一个系统设置页面;一个个性化设置页面等。不说废话,直接看代码。1.建立工程文件,命名TestviewfillerActivity。 2.布局文件main.xml 如下:android:orientation="vertical" android原创 2012-03-07 22:20:00 · 4678 阅读 · 0 评论 -
android listview单击事件
今天我们来学习下listview 单击事件,这在开发中是经常用的组件之一。1.新建一个项目,名为ListViewDemo。2.布置布局文件main.xmlandroid:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent">原创 2012-03-13 23:02:28 · 49747 阅读 · 7 评论 -
Android端应用秒开优化体验
前言最近部门内抛出了一个问题,应用启动很慢、卡图标?主要表现在中低端机型中。究其这个问题,由于对性能优化比较感兴趣,借了个低端机和一个中端机来一看究竟,对同一应用分别测了下它在中低端机的启动时间,下面为启动耗时情况: 启动了三次,基本都在4s左右。原因究其原因,主要因素是任务在界面绘制前过于集中化。 应用启动过程从用户点击launcher图标到看到第一帧这个过程中,主要会经过以下这些过程:m转载 2017-09-06 16:34:28 · 486 阅读 · 0 评论