
android app基础
tiananma0607
这个作者很懒,什么都没留下…
展开
-
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 · 318 阅读 · 0 评论 -
Android视图状态及重绘流程分析,深入了解View(三)
相信大家在平时使用View的时候都会发现它是有状态的,比如说有一个按钮,普通状态下是一种效果,但是当手指按下的时候就会变成另外一种效果,这样才会给人产生一种点击了按钮的感觉。当然了,这种效果相信几乎所有的Android程序员都知道该如何实现,但是我们既然是深入了解View,那么自然也应该知道它背后的实现原理应该是什么样的,今天就让我们来一起探究一下吧。 一、视图状态 视图状态的种类非常转载 2015-11-12 15:49:37 · 535 阅读 · 0 评论 -
android service完全解析(下)
,Service其实是运行在主线程里的,如果直接在Service中处理一些耗时的逻辑,就会导致程序ANR。 让我们来做个实验验证一下吧,修改上一篇文章中创建的ServiceTest项目,在MyService的onCreate()方法中让线程睡眠60秒,如下所示: [java] view plaincopy public class MyServ转载 2015-11-12 17:09:56 · 324 阅读 · 0 评论 -
Android Context完全解析
Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了。但是这并不代表Context没有什么东西好讲的,实际上Context有太多小的细节并不被大家所关注,那么今天我们就来学习一下那些你所不知道的细节。 Context类型 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在转载 2015-11-13 16:05:11 · 300 阅读 · 0 评论 -
Android Animation简述
Animation动画效果。提供了一系列的动画效果,可以应用大多数 的控件。 一、Animations从总体上来说可以分为两大类: 1、TweenedAnimations:该类提供了旋转,移动,伸展,和淡出竺效果; 2、Frame-by-FrameAmimations:这一类可以创建一个Drawable序列:这些Drawable可以按照指定的时间间歇一个一个的显示。 二转载 2015-11-13 14:34:10 · 327 阅读 · 0 评论 -
Android异步消息处理机制完全解析(源码角度)
Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。 这种处理方式被称为异步消息处理线程转载 2015-11-12 16:15:35 · 349 阅读 · 0 评论 -
android任务和返回栈完全解析
一个应用程序当中通常都会包含很多个Activity,每个Activity都应该设计成为一个具有特定的功能,并且可以让用户进行操作的组件。另外,Activity之间还应该是可以相互启动的。比如,一个邮件应用中可能会包含一个用于展示邮件列表的Activity,而当用户点击了其中某一封邮件的时候,就会打开另外一个Activity来显示该封邮件的具体内容。 除此之外,一个Activity甚至还可以去转载 2015-11-12 17:33:17 · 424 阅读 · 0 评论 -
android内存泄漏分析
虽说现在的手机内存都已经非常大了,但是我们大家都知道,系统是不可能将所有的内存都分配给我们的应用程序的。没错,每个程序都会有可使用的内存上限,这被称为堆大小(Heap Size)。不同的手机,堆大小也不尽相同,随着现在硬件设备不断提高,堆大小也已经由Nexus One时的32MB,变成了Nexus 5时的192MB。如果大家想要知道自己手机的堆大小是多少,可以调用如下代码: [jav转载 2015-11-12 17:46:47 · 368 阅读 · 0 评论 -
Android自定义View的实现方法,深入了解View(四)
一些接触Android不久的朋友对自定义View都有一丝畏惧感,总感觉这是一个比较高级的技术,但其实自定义View并不复杂,有时候只需要简单几行代码就可以完成了。 如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件。那么下面我们就来依次学习一下,每种方式分别是如何自定义View的。 一、自绘控件 自绘控件的意思就是,这个View上转载 2015-11-12 15:59:58 · 325 阅读 · 0 评论 -
android service完全解析(上)
Service的基本用法 关于Service最基本的用法自然就是如何启动一个Service了,启动Service的方法和启动Activity很类似,都需要借助Intent来实现,下面我们就通过一个具体的例子来看一下。 新建一个Android项目,项目名就叫ServiceTest,这里我选择使用4.0的API。 然后新建一个MyService继承自Service,并重写父类转载 2015-11-12 17:01:33 · 327 阅读 · 0 评论 -
Android内存泄漏检测-LeakCanary
square/leakcanary udacity/Sunshine-Version-2 添加LeakCanary依赖包 在主模块app下的build.gradle下添加如下依赖: debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' releaseCompile 'com.squareup.l转载 2015-10-29 16:35:50 · 382 阅读 · 0 评论 -
Android ListView工作原理解析
在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。 另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,转载 2015-11-13 15:45:32 · 455 阅读 · 0 评论 -
Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
Interpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改变的速率不是一成不变的,像加速运动以及减速运动都属于非线性运动。 不过Interpolator并不是属性动画中新增的技术,实际上从Android 1.0版本开始就一直存在Interpolator接口转载 2015-11-13 15:24:15 · 307 阅读 · 0 评论 -
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 · 1349 阅读 · 0 评论 -
android动画基础初探
android动画相关代码: AccelerateDecelerateInterpolator AccelerateInterpolator AlphaAnimation Animation Animation.Description AnimationSet AnimationUtils AnticipateInterpolator AnticipateOver转载 2015-10-09 11:25:32 · 418 阅读 · 0 评论 -
Android反射机制实现与原理
本文介绍Android反射机制实现与原理,在介绍之前,要和Java进行比较,所以先看下Java中的反射相关知识: 一、反射的概念及在Java中的类反射 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述行为的转载 2015-10-09 16:40:22 · 406 阅读 · 0 评论 -
LayoutInflater原理分析,深入了解View(一)
相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来加载布局的,只不过这部分源码是in转载 2015-11-12 15:19:05 · 456 阅读 · 0 评论 -
Android视图绘制流程完全解析,深入了解View(二)
相信每个Android程序员都知道,我们每天的开发工作当中都在不停地跟View打交道,Android中的任何一个布局、任何一个控件其实都是直接或间接继承自View的,如TextView、Button、ImageView、ListView等。这些控件虽然是Android系统本身就提供好的,我们只需要拿过来使用就可以了,但你知道它们是怎样被绘制到屏幕上的吗?多知道一些总是没有坏处的,那么我们赶快进入到转载 2015-11-12 15:34:54 · 587 阅读 · 0 评论 -
Android AsyncTask完全解析(源码角度)
为了更加方便我们在子线程中更新UI元素,Android从1.5版本就引入了一个AsyncTask类,使用它就可以非常灵活方便地从子线程切换到UI线程,我们本篇文章的主角也就正是它了。 AsyncTask很早就出现在Android的API里了,所以我相信大多数朋友对它的用法都已经非常熟悉。不过今天我还是准备从AsyncTask的基本用法开始讲起,然后我们再来一起分析下AsyncTask源码,看转载 2015-11-12 16:26:14 · 394 阅读 · 0 评论 -
Android属性动画完全解析(上)
在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理。补间动画则是可以对View进行一系列的动转载 2015-11-13 14:42:09 · 327 阅读 · 0 评论 -
Android数据库加解密(SQLCipher)
Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。数据库存储是我们经常会使用到的一种存储方式,相信大多数朋友对它的使用方法都已经比较熟悉了吧。在Android中,我们既可以使用原生的SQL语句来对数据进行操作,也可以使用Android API提供的CRUD方法来对数据库进行操作,两种方式各有特点,选择使用哪一种就全凭个人喜好了。 不过,使用转载 2015-11-12 16:31:29 · 427 阅读 · 0 评论 -
Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
在上篇文章中介绍补间动画缺点的时候有提到过,补间动画是只能对View对象进行动画操作的。而属性动画就不再受这个限制,它可以对任意对象进行动画操作。那么大家应该还记得在上篇文章当中我举的一个例子,比如说我们有一个自定义的View,在这个View当中有一个Point对象用于管理坐标,然后在onDraw()方法当中就是根据这个Point对象的坐标值来进行绘制的。也就是说,如果我们可以对Point对象进行转载 2015-11-13 15:00:25 · 269 阅读 · 0 评论 -
可拖拽gridview实现2
在Android开发中,我们常常用到ListView和GridView,而有的时候系统的ListView,GridView并不能满足我们的需求,所以我们需要自己定义一个ListView或者GridView,我的上一篇文章中就是自定义的一个左右滑动删除item的例子,大家有兴趣的可以去看看 Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果,今天这篇文章就给大转载 2015-11-18 08:59:51 · 533 阅读 · 0 评论