- 博客(41)
- 资源 (7)
- 收藏
- 关注
转载 可拖拽gridview实现2
在Android开发中,我们常常用到ListView和GridView,而有的时候系统的ListView,GridView并不能满足我们的需求,所以我们需要自己定义一个ListView或者GridView,我的上一篇文章中就是自定义的一个左右滑动删除item的例子,大家有兴趣的可以去看看 Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果,今天这篇文章就给大
2015-11-18 08:59:51 508
转载 可拖拽GridView代码解析
本篇学习笔记是对eoe网上一个项目代码的解读,具体项目作者的博客如下:http://blog.csdn.net/vipzjyno1/article/details/26514543。项目源码下载地址为https://github.com/Rano1/TopNews本篇只对可拖拽的GridView的代码进行解读,同时修改了原项目中不必要的变量、去掉了不必要或者逻辑错误的代码,也删除了方法中不必要的局
2015-11-18 08:27:21 390
转载 Android Context完全解析
Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了。但是这并不代表Context没有什么东西好讲的,实际上Context有太多小的细节并不被大家所关注,那么今天我们就来学习一下那些你所不知道的细节。Context类型我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在
2015-11-13 16:05:11 280
转载 Android ListView工作原理解析
在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,
2015-11-13 15:45:32 428
转载 Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
Interpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改变的速率不是一成不变的,像加速运动以及减速运动都属于非线性运动。不过Interpolator并不是属性动画中新增的技术,实际上从Android 1.0版本开始就一直存在Interpolator接口
2015-11-13 15:24:15 287
转载 Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
在上篇文章中介绍补间动画缺点的时候有提到过,补间动画是只能对View对象进行动画操作的。而属性动画就不再受这个限制,它可以对任意对象进行动画操作。那么大家应该还记得在上篇文章当中我举的一个例子,比如说我们有一个自定义的View,在这个View当中有一个Point对象用于管理坐标,然后在onDraw()方法当中就是根据这个Point对象的坐标值来进行绘制的。也就是说,如果我们可以对Point对象进行
2015-11-13 15:00:25 252
转载 Android属性动画完全解析(上)
在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理。补间动画则是可以对View进行一系列的动
2015-11-13 14:42:09 298
转载 Android Animation简述
Animation动画效果。提供了一系列的动画效果,可以应用大多数 的控件。一、Animations从总体上来说可以分为两大类:1、TweenedAnimations:该类提供了旋转,移动,伸展,和淡出竺效果;2、Frame-by-FrameAmimations:这一类可以创建一个Drawable序列:这些Drawable可以按照指定的时间间歇一个一个的显示。二
2015-11-13 14:34:10 299
转载 android内存泄漏分析
虽说现在的手机内存都已经非常大了,但是我们大家都知道,系统是不可能将所有的内存都分配给我们的应用程序的。没错,每个程序都会有可使用的内存上限,这被称为堆大小(Heap Size)。不同的手机,堆大小也不尽相同,随着现在硬件设备不断提高,堆大小也已经由Nexus One时的32MB,变成了Nexus 5时的192MB。如果大家想要知道自己手机的堆大小是多少,可以调用如下代码:[jav
2015-11-12 17:46:47 345
转载 android任务和返回栈完全解析
一个应用程序当中通常都会包含很多个Activity,每个Activity都应该设计成为一个具有特定的功能,并且可以让用户进行操作的组件。另外,Activity之间还应该是可以相互启动的。比如,一个邮件应用中可能会包含一个用于展示邮件列表的Activity,而当用户点击了其中某一封邮件的时候,就会打开另外一个Activity来显示该封邮件的具体内容。除此之外,一个Activity甚至还可以去
2015-11-12 17:33:17 403
转载 android service完全解析(下)
,Service其实是运行在主线程里的,如果直接在Service中处理一些耗时的逻辑,就会导致程序ANR。让我们来做个实验验证一下吧,修改上一篇文章中创建的ServiceTest项目,在MyService的onCreate()方法中让线程睡眠60秒,如下所示:[java] view plaincopypublic class MyServ
2015-11-12 17:09:56 301
转载 android service完全解析(上)
Service的基本用法关于Service最基本的用法自然就是如何启动一个Service了,启动Service的方法和启动Activity很类似,都需要借助Intent来实现,下面我们就通过一个具体的例子来看一下。新建一个Android项目,项目名就叫ServiceTest,这里我选择使用4.0的API。然后新建一个MyService继承自Service,并重写父类
2015-11-12 17:01:33 314
转载 Android数据库加解密(SQLCipher)
Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。数据库存储是我们经常会使用到的一种存储方式,相信大多数朋友对它的使用方法都已经比较熟悉了吧。在Android中,我们既可以使用原生的SQL语句来对数据进行操作,也可以使用Android API提供的CRUD方法来对数据库进行操作,两种方式各有特点,选择使用哪一种就全凭个人喜好了。不过,使用
2015-11-12 16:31:29 387
转载 Android AsyncTask完全解析(源码角度)
为了更加方便我们在子线程中更新UI元素,Android从1.5版本就引入了一个AsyncTask类,使用它就可以非常灵活方便地从子线程切换到UI线程,我们本篇文章的主角也就正是它了。AsyncTask很早就出现在Android的API里了,所以我相信大多数朋友对它的用法都已经非常熟悉。不过今天我还是准备从AsyncTask的基本用法开始讲起,然后我们再来一起分析下AsyncTask源码,看
2015-11-12 16:26:14 379
转载 Android异步消息处理机制完全解析(源码角度)
Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。这种处理方式被称为异步消息处理线程
2015-11-12 16:15:35 332
转载 Android自定义View的实现方法,深入了解View(四)
一些接触Android不久的朋友对自定义View都有一丝畏惧感,总感觉这是一个比较高级的技术,但其实自定义View并不复杂,有时候只需要简单几行代码就可以完成了。如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件。那么下面我们就来依次学习一下,每种方式分别是如何自定义View的。一、自绘控件自绘控件的意思就是,这个View上
2015-11-12 15:59:58 301
转载 Android视图状态及重绘流程分析,深入了解View(三)
相信大家在平时使用View的时候都会发现它是有状态的,比如说有一个按钮,普通状态下是一种效果,但是当手指按下的时候就会变成另外一种效果,这样才会给人产生一种点击了按钮的感觉。当然了,这种效果相信几乎所有的Android程序员都知道该如何实现,但是我们既然是深入了解View,那么自然也应该知道它背后的实现原理应该是什么样的,今天就让我们来一起探究一下吧。一、视图状态视图状态的种类非常
2015-11-12 15:49:37 508
转载 Android视图绘制流程完全解析,深入了解View(二)
相信每个Android程序员都知道,我们每天的开发工作当中都在不停地跟View打交道,Android中的任何一个布局、任何一个控件其实都是直接或间接继承自View的,如TextView、Button、ImageView、ListView等。这些控件虽然是Android系统本身就提供好的,我们只需要拿过来使用就可以了,但你知道它们是怎样被绘制到屏幕上的吗?多知道一些总是没有坏处的,那么我们赶快进入到
2015-11-12 15:34:54 556
转载 LayoutInflater原理分析,深入了解View(一)
相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来加载布局的,只不过这部分源码是in
2015-11-12 15:19:05 435
转载 Trinea性能优化之性能优化实例
本文主要分享自己在appstore项目中的性能调优点,包括同步改异步、缓存、Layout优化、数据库优化、算法优化、延迟执行等。 目前性能优化专题已完成以下部分:性能优化总纲——性能问题及性能调优方式性能优化第四篇——移动网络优化性能优化第三篇——Java(Android)代码优化性能优化第二篇——布局优化性能优化第一篇——数据库性能优化性能
2015-11-09 19:57:31 479
转载 Trinea性能优化之移动端的网络优化
介绍下针对移动端的网络优化,不限于 Android,同样适用于 iOS 和 H5。这篇文章首发在微信公众号 codekk。 本文为性能优化系列第四篇,目前性能调优专题已完成以下部分:性能优化总纲——性能问题及性能调优方式性能优化第四篇——移动网络优化性能优化第三篇——代码优化性能优化第二篇——布局优化性能优化第一篇——数据库性能优化Android 性能调
2015-11-09 19:50:13 354
转载 Trinea性能优化之Java(Android)代码优化
本文为Android性能优化的第三篇——Java(Android)代码优化。主要介绍Java代码中性能优化方式及网络优化,包括缓存、异步、延迟、数据存储、算法、JNI、逻辑等优化方式。(时间仓促,后面还会继续完善^_*) 目前性能优化专题已完成以下部分:性能优化总纲——性能问题及性能调优方式性能优化第四篇——移动网络优化性能优化第三篇——Java(Andro
2015-11-09 19:46:07 399
转载 Trinea性能优化之布局优化
本文为Android性能优化的第二篇——布局优化,主要介绍使用抽象布局标签(include, viewstub, merge)、去除不必要的嵌套和View节点、减少不必要的infalte及其他Layout方面可调优点,顺带提及布局调优相关工具(hierarchy viewer和lint)。 目前性能优化专题已完成以下部分:性能优化总纲——性能问题及性能调优方式性能优
2015-11-09 19:40:13 343
转载 Trinea性能优化系列之数据库优化
本文为性能优化的第一篇——数据库性能优化,原理适用于大部分数据库包括Sqlite、Mysql、Oracle、Sql server,详细介绍了索引(优缺点、分类、场景、规则)和事务,最后介绍了部分单独针对Sqlite的优化。 目前性能优化专题已完成以下部分:性能优化总纲——性能问题及性能调优方式性能优化第四篇——移动网络优化性能优化第三篇——Java(Andr
2015-11-09 19:33:00 317
转载 Trinea性能优化系列总篇
性能优化系列总篇本文为性能优化系列的总纲,主要介绍性能调优专题计划、何为性能问题、性能调优方式及前面介绍的数据库优化、布局优化、Java(Android)代码优化、网络优化具体对应的调优方式。 1、调优专题博客计划目前性能优化专题已完成以下部分:性能优化总纲——性能问题及性能调优方式性能优化第四篇——移动网络优化性能优化第三篇——Java
2015-11-09 16:21:28 366
转载 Android性能优化典范C3
Android性能优化典范的课程最近更新到第三季,共包含12个短视频,内容大致有:更高效的ArrayMap容器、使用Android系统提供的特殊容器来避免自动装箱、避免使用枚举类型、注意onLowMemory与onTrimMemory的回调等。
2015-11-09 16:08:36 415
转载 Android性能优化典范C2
Android性能优化典范的课程最近更新到第三季,共包含12个短视频,内容大致有:更高效的ArrayMap容器、使用Android系统提供的特殊容器来避免自动装箱、避免使用枚举类型、注意onLowMemory与onTrimMemory的回调等
2015-11-09 15:57:24 407
转载 Android性能优化典范C1
Android性能优化典范的课程最近更新到第三季了,这次一共12个短视频课程,包括的内容大致有:更高效的ArrayMap容器,使用Android系统提供的特殊容器来避免自动装箱,避免使用枚举类型,注意onLowMemory与onTrimMemory的回调,避免内存泄漏,高效的位置更新操作,重复layout操作的性能影响,以及使用Batching,Prefetching优化网络请求,压缩传输数据等等
2015-11-09 15:49:32 353
转载 Android性能优化典范B4
Google于不久前发布了Android性能优化典范第2季课程,共有20个短视频,内容涵盖电量优化、Android Wear上如何做优化、LRU Cache、Bitmap的缩放、提升设置alpha之后View的渲染性能等。本文是对这些课程的总结摘要。
2015-11-09 15:23:50 396
转载 Android性能优化典范(B3)
Google于不久前发布了Android性能优化典范第2季课程,共有20个短视频,内容涵盖电量优化、Android Wear上如何做优化、LRU Cache、Bitmap的缩放、提升设置alpha之后View的渲染性能等。本文是对这些课程的总结摘要。
2015-11-09 15:16:52 378
转载 Android性能优化典范(B2)
Google于不久前发布了Android性能优化典范第2季课程,共有20个短视频,内容涵盖电量优化、Android Wear上如何做优化、LRU Cache、Bitmap的缩放、提升设置alpha之后View的渲染性能等。本文是对这些课程的总结摘要。
2015-11-09 15:04:11 311
转载 Android性能优化典范(B1)
Google于不久前发布了Android性能优化典范第2季课程,共有20个短视频,内容涵盖电量优化、Android Wear上如何做优化、LRU Cache、Bitmap的缩放、提升设置alpha之后View的渲染性能等。本文是对这些课程的总结摘要。
2015-11-09 14:58:33 363
转载 Android性能优化典范(A3)--电量优化
新年伊始,Google发布了包含16个短视频的Android性能优化典范专题,详解Android系统中有关性能问题的底层工作原理,并介绍了如何通过工具找出性能问题以及提升性能的建议。本文作者对这些问题和建议进行了总结梳理。
2015-11-09 14:44:33 525
转载 Android性能优化典范(A2)--内存优化
新年伊始,Google发布了包含16个短视频的Android性能优化典范专题,详解Android系统中有关性能问题的底层工作原理,并介绍了如何通过工具找出性能问题以及提升性能的建议。本文作者对这些问题和建议进行了总结梳理。
2015-11-09 14:41:31 404
转载 Android性能优化典范(A1)----渲染机制
新年伊始,Google发布了包含16个短视频的Android性能优化典范专题,详解Android系统中有关性能问题的底层工作原理,并介绍了如何通过工具找出性能问题以及提升性能的建议。本文作者对这些问题和建议进行了总结梳理
2015-11-09 14:36:33 343
原创 aidl详解:同一APK内,不同apk间的activty与service通信
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/
2015-11-06 16:43:04 1325
转载 子网划分
一、子网掩码的换算: 在一个网络里面的子网掩码的计算,是以网络中有多少台主机来计算的。比如说一B类IP地址为172.16.0.0的网络划分成若干子网,要求每个子网内有主机数为500台,则该子网掩码的计算方法基本步骤如下: 第一步,首先将子网中要求容纳的主机数“500”转换成二进制,得到100000100。 第二步,计算出该二进制的位数为10位,即n =10。 第三步,将25
2015-11-05 09:18:50 2102 1
转载 java.util.Queue简述
java中queue的使用Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。B
2015-11-04 10:23:23 350
转载 java BigInteger
用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂。用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理。下面是写的一些Java中一些基本的函数的及其……头文件:import java.io.*;import java.util.*;import java.math.*;读入: Scanner c
2015-11-04 09:43:19 378
转载 android正则表达式
要严格的验证手机号码,必须先要清楚现在已经开放了哪些数字开头的号码段,目前国内号码段分配如下:移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188联通:130、131、132、152、155、156、185、186电信:133、153、180、189、(1349卫通)验证手机号:
2015-11-04 09:27:00 283
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人