Android应用开发之所有动画使用详解 1 背景不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今天来一发Android应用的各种Animation大集合。英文厉害的请直接移步参考Android Developer。Android系统提供了很多丰富的API去实现UI的2D与3D动画,最主要的划分可以分为如下几类: View Animation: 视图动画在古老的Andr...
面向对象的5个基本设计原则 面向对象的5个基本设计原则:单一职责原则(Single-Resposibility Principle) 其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和...
KMP算法的next[]数组的求法和理解 KMP算法的关键是next数组的求法在KMP算法中有个数组,叫做前缀数组,也有的叫next数组,每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况下可以向前多跳几个字符,当然它描述的也是子串的对称程度,程度越高,值越大,当然之前可能出现再匹配的机会就更大。 用一个例子来解释,下面是一个子串的next数组的值,可以看到这个子串的对称程度很高,所以next值都比较大。...
对final数据类型的简单理解 对于一个变量来说,当它被定义为final类型的时候,表示这个变量是不可改变的,也就保证了只会对它赋值一次,试图改变final变量的值,编译时均会报错,因此,声明为final类型的数据类型通常被认为是不可变的数据类型。存在一种情况,“会使这种不可变数据类型被改变”。Java中新建一个类的对象通常是通过引用来实现的,这种引用会造成.“ 引用不变,但是引用所指向的值发生了改变”这种情况而编译时不会报...
Gesture手势及手势库 一、Gesture基础:(一)、概念: 所谓手势,其实是指用户手指或者触摸笔在触摸屏上的连续触碰行为。比如在屏幕上从左至右划出一个动作,就是手势。再比如在屏幕上画一个圆圈也是手势。手势这种连续的触碰会形成某个方向上的移动趋势,也会形成一个不规则的几何图形。应用程序中的手势就是:多个持续的触摸事件在屏幕上形成特定的形状。 And
android studio的sdk所有方法报错,全部红色警告 链接:http://blog.csdn.net/u010773839/article/details/53609473所有的方法都是红色警告,项目中每个文件打开都是这样子,可以编译。以前有遇到过这样的问题,当时只要Build ->Clean Project就解决了。今天试了这方法不行,然后网上说Tools ->Android ->Sync Project with Grad
生产者消费者模型 一、介绍:(一)、概念: 如果要实现以下操作流程,使用Java代码来实现: 多个蛋糕师生产蛋糕,多个消费者购买蛋糕; 蛋糕的最大库存为5个; 早生产的蛋糕先被销售,最后被生产的蛋糕要最后被售出 如果要实现这个过程,一定要借助Java线程的并发协作来做。其实这在Java中叫做生产者消费者模型(确切说应该是“生产者-消费者-仓储”模
二维码 1.学习内容: a.今天讲一下目前移动领域很常用的技术——二维码;现在大街小巷、各大网站都有二维码的踪迹,不管是IOS、Android、WP都有相关支持的软件。 b.在Android平台上主流还是用zxing库,ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,可以实现使用手机的内置的摄像头完成条形码的扫描及解码。 c.因此这里
八大排序算法 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,
px,dp,dip,sp的区别 1.px (像素):屏幕上的点 ,与密度相关。密度大了,单位面积上的px会比较多。2.dip或dp(与密度无关的像素)。这个和设备硬件有关,为了支持WVGA、HVGA和QVGA 推荐使用这个。一种基于屏幕密度的抽象单位。设置一些view的宽高可以用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。如果用px的话,320px占满HVGA的宽度,到WVGA上就只能占一半不到的屏幕了。3.sp
surfaceview SurfaceView控件: * 1.主要用来显示图像数据,直接能从硬件接口里面获取数据: 视屏播放,拍照,二维码扫描或者游戏背景。。。 * 2.该控件具有双缓冲机制,实现效率高 * 3.能够在子线程中修改UI * 4.SurfaceView控件的绘制内容,是靠内部类SurfaceHolder来进行绘制的 使用步骤: * 1.继承surfaceview控件,同时去实现
极光推送的使用步骤 使用可以分一下七个步骤:1.把架包拷过来到libs里面(add)2.在main下面建一个jniLibs(名字不可以错),粘贴几个项目过来,原来在eclipse的libs里面的3.把ExampleApplication粘贴过来,去清单文件注册(!!!!!!!最容易错的是包名和注册的包名不一样)4.粘贴权限5.粘贴核心功能从到6.把Strings里面jpush_st
Volley使用 Volley使用:Volley是Android平台上的网络通信库,能使网络通信更快、更简单、更健壮Volley使用了典型的模板回调机制实现Get,Post请求,上传json字符串,Volley的图片下载 RequestQueue :管理全局请求的单例,最好全局只有一个 StringRequest :文本的请求,下载字符串的时候需要创建的对象 Response.Lisente
百度地图 一、基本概念:(一)、百度地图:百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据, 构建功能丰富、交互性强的地图类应用程序。百度地图Android SDK提供的所有服务是免费的,接口使用无次数限
Service二——跨进程访问AIDL 一、AIDL:(一)、概念:1、相关知识:在Android中, 每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java中是不支持跨进程内存共享的。因此要传递对象, 需要把对象解析成操作系统能够理解的数据格式, 以达到跨界对象访问的目的。这就是远程程序调用(Remote Procedure Call , RPC)。在JavaEE中,
Service一 一、Service:(一)、Service 简介:1、何谓“Service”?“Service” 意思即“服务”的意思, 像 Windows 上面的服务一样,服务是在后台上运行,承担着静悄悄的不为人所注意的工作。Service运行在后台,它是不可见的、无界面的程序。Service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity,这个
Notification及BroadcastReceiver 一、Notification:(一)、简介: 显示在手机状态栏的通知。Notification所代表的是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。 Android3.0增加了Notification.Builder类,该类可以轻松地创建Notification对象。Not
样式主题与自定义View 样式和主题资源都是用于对Android应用进行美化的。一、样式:(一)、介绍:1、概念:Android中的样式和CSS样式作用相似,都是用于为界面元素定义显示风格,它是包含一个或者多个view控件属性的集合。如:需要定义字体的颜色和大小。2、作用:将一些常用的属性组合成样式,便于重复使用,减少给View控件指定类似属性的重复工作。Android Style类似网页设计中
Handler、Looper消息传递机制 一、Handler消息传递机制初步认识:(一)、引入: 子线程没有办法对UI界面上的内容进行操作,如果操作,将抛出异常:CalledFromWrongThreadException为了实现子线程中操作UI界面,Android中引入了Handler消息传递机制,目的是打破对主线程的依赖性。 什么是Handler?
SQLiteDatabase 一、SQLite:(一)、简介: 除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。 在Android平台上,集成了一个嵌入式关系型数据库——SQLite。 SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)等五种数据类型; 虽