- 博客(24)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 多线程2.0
线程中的资源共享:当多个线程访问同一共享资源时,如果不加以同步处理,很有可能使他们访问出错;例如,把你餐桌上的食物是共享资源,你正伸手去拿食物,突然食物不见了,这就造成了共享资源混乱;java提供给我们的处理的办法就是上锁:synchronized,使用该关键字把你需要的同步方法包起来,则以后有线程要访问你这段代码,就必须获得该对象实例的同步锁(此锁是java内部对象生成的,隐式提供给我们的,
2015-10-21 15:17:28 497
原创 android动画 -- view Animation
android动画: 分为三种:View Animation、Drawable Animation和Property AnimationView Animation只能用于View组件上,并且只能完成基本的动画效果(旋转/透明度渐变/尺寸渐变/移动),它无法做到背景颜色的改变等;并且这些动画效果也只是改变了draw时的绘制效果,并没有改变组件实际的尺寸和位置,例如Button使用这种效果时
2015-10-19 23:30:05 379
原创 android动画 -- Property Animator
Property Animation就是通过设置动画的实际动作属性,完成动画效果;和属性动画相关的类:ObjectAnimator 动画的执行类ValueAnimator 动画的执行类AnimatorSet 用于控制一组动画的执行:线性,一起,每个动画的先后执行等。AnimatorInflater 用户加载属性动画的xml文件TypeEvaluator 类型估值,主要用于设置动画操作属性的值。(
2015-10-19 23:27:58 539
原创 surfaceView
子线程一改变作画内容,改变一次休眠一次:public class WelcomeViewGoThread extends Thread{ WelcomeView welcomeView; private int sleepPan = 150; private boolean flag = true; //循环标志 public WelcomeViewGoThread(WelcomeV
2015-10-15 23:05:16 378
原创 fragment
fragment定义: fragment是Activity的一部分,fragment不能独立存在,只能镶嵌在fragmentActivity中存活,一个fragmentActivity可以包含多个fragment,可以重复包含一个fragment,fragment有自己的生命周期。fragmentActivity可以动态添加或删除fragmentfragment的生命周期: 一般
2015-10-14 23:33:11 405
原创 sax解析xml
sax解析XML原理,基于事件驱动机制,在文档开头、标签开头等地方触发事件,解析速度快、占用内存少,但使用比较复杂,比较适合移动终端的使用方式解析步骤: ①创建XML解析处理器。 SAXParserFactory factory = SAXParserFactory.newInstance(); ②创建SAX解析器。 SAXParser parser = factory.
2015-10-14 23:23:28 354
原创 标准java http和 apach httpclient总结
http除了标准的java接口外,还有apach开源项目也提供了http的api,简称httpclient 这种http的使用更为方便简单,httpclient封装了http的请求、身份验证和连接管理等特性,它主要实现了abstractHttpClient、DefaultHttpClient和AndroidHttpClientandroidHttpClient是使用android原生的代码
2015-10-14 23:22:03 643
原创 android -- service
Service 是android的四大组件之一(Activity、Service、ContentProvider、BroadcastReceiver),Service没有界面,后台运行执行任务并且可以与其他组件经行交互,只能通过其他方式启动local service 依附在主线程上,主线程被kill,service也会被kill remote service 独立线程,能提供更灵活的服务
2015-10-14 21:47:33 378 1
原创 json解析
json (javascript object notation)轻量级的数据交换格式,一般多用于web服务器和客户端的数据交互json数据格式分两种: jsonObject和jsonArray 前者是一种无需的键值对方式存储数据,例如{“name”,”zhou”} key必须为string类型value可以为其他许多类型 后者是一种有序的value集合,类似于数组
2015-10-14 20:57:54 312
原创 pull解析xml
Pull解析XML: 和sax类似,也是基于事件驱动的解析xml,但是比sax使用更方便简单;android也自己封装了pull的解析器XmlResourceParser;常用的XML pull的接口和类:XmlPullParser:该解析器是一个在org.xmlpull.v1中定义的解析功能的接口。XmlSerializer:它是一个接口,定义了XML信息集的序列。XmlPullPar
2015-10-14 20:38:18 423
原创 dom解析xml
dom是一种用于XML文档对象模型,可用于直接访问xml文档的各个部分,在DOM中文档模拟为树状,其中xml语法的每一个组成部分都表示一个节点,DOM允许用户遍历文档树,从父节点移动到子节点;操作简单,方便由于dom是直接将整个xml文件导入进来,所有对内存资源也是一个不小的冲击,所有,DOM只适合那小小型的文档解析,在对大型文档解析的时候要格外注意以Person的xml文件为例读取:<person
2015-10-13 23:41:13 417
原创 android WIFI开发
android wifi开发: wifi技术是一种无线联网技术,通常使用无线路由器制造一个wifi热点,我们的终端设备就可以打开wifi进行互联,那么在android手机上是如何实现与无线路由器的热点互联的呢?android wifi开发的api都在android.net.wifi包下面,它下面主要包括以下几个类:1. ScanResult 打开wifi扫描到的无线网络接入点,包括接入
2015-10-13 22:43:14 612
原创 android代码实现app升级
android 在APP需要更新的时候是如何更新的呢? 升级分为普通升级和增量升级,增量升级是差分升级,类似于把补丁,把新的特性的文件下载到客户端,在在客户端上进行组装,而不需要把整个安装包重新下载到客户端,减少流量的传输; 普通升级就是把整个apk文件下载到客户端安装,替换掉旧的app应用1. 如何区分app版本需要升级? 谷歌建议我们使用android清单文件里面的配置
2015-10-13 21:36:23 855
原创 http
Http模式: 以Http协议在服务端和客户端之间通信服务端: 首先,需要在Tomcat的安装文件下的conf目录下的server.xml文件的Host节点下添加 java web server,在MyEclipse上面;建立web server工程,配置Tomcat配置方法参考网站http://wenku.baidu.com/link?url=AGUpl3
2015-10-12 20:55:19 447
原创 handler机制
handler机制:概念 handler机制是一种异步通信机制,通常用于子线程中数据更新后,通知主线程UI更新。handler运行框架图 从上面handler的运行框架图来看,为了完成handler整个流程,你必须按事先创建好四个东西: handler、Message、MessageQueue和Looper,也许Looper从上图来看并不是必须的,因为遍历MessageQueue只是调用了一个静
2015-10-12 20:53:56 651
原创 android事件分发机制
android事件分发机制: 我们在屏幕上进行一系列的点击/滑动/抬起等动作时所触发的事件,都是在与android的组件进行交互,而几乎所有的组件都是继承于View或ViewGroup,那他们在android应用中是如何被传递的呢?事件分发离不开三个重要的方法: public boolean dispatchTouchEvent(MotionEvent event)
2015-10-12 20:52:53 369
原创 view 自定义组件 --- 水滴组件
继承View可以制作出单独的组件,自己有特色的事件:需要重写几个方法:1. 构造器;一个是参数含有Context和另一个AttributeSet context的构造器一般用于在Java代码中new的时候用到,而attributeset则用于在xml中写一些控件属性时候用到;另外我们可以在android工程中的values目录下编写一个attribut.xml文件,里面主要在<declare-
2015-10-12 20:52:21 1241 1
原创 viewgroup自定义组件 --- 侧滑组件
继承ViewGroup制作的自定义组件常常是一些布局或者组合组件: 和View的自定义组件类似,需要重写onMeause和onLayout测量组件的宽高和布局,因为viewGruop里面包含了子组件,所有在测量和定位的时候都是以子组件为中心进行测量和定位;不需要重写onDraw方法,因为viewGroup是一个容器类,我们只需要调用它的子组件的draw方法即可还要注意事件分发时,要重写on
2015-10-12 20:50:36 449
原创 Java反射机制
反射机制概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。那么Java是如何动态的获取对象的方法和属性的呢?JVM需要哪个类,classLoder就会去加载这个类,让后根据.class文件生成一个独一无二的class对象,该class对象记载
2015-10-10 22:01:38 396
原创 观察者模式
观察者模式概念: 顾名思义,该模式分为两种角色,观察者和被观察者(主题),当主题状态发生改变,就把状态信息发送给每个观察者;实现过程大概为:观察者都实现同一个观察者接口,重写里面的消息通知方法(用于主题更新的方法);主题也实现一个接口,接口里面涉及对观察者列表的删除更新操作; 一对多的关系,这种场景可以用在传感器检测方面,传感器当作一个主题对象,传感器状态一发生变化,立即更新给他
2015-10-10 22:01:03 444
原创 ContentProvider
ContentProvider概念:ContentProvider是一种能够实现跨应用进行数据共享的机制,并且提供标准的数据访问接口;当你需要提供数据给别人访问时,你就需要提供ContentProvider数据访问接口,别人通过你的接口,用ContentResolver与你的ContentProvider进行连接,ContentProvider会接收ContentReslover的请求,并
2015-10-09 22:31:29 544 1
原创 代理模式
代理模式概念: 通常我们不想或者不能直接调用某一类,可以设计出另外一个类来代理我们想调用的类,这种替代其他类执行的模式叫代理模式代理模式的角色分为三种:真实类 代理类 抽象接口普通的代理模式实现方法: 原理:实质上是代理类事先有一个真实类的引用,故代理类里面可以调用真实类的方法 //抽象代类或接口public interface Subject{
2015-10-08 21:25:26 372
原创 sqlite学习
version 2.0 Sqlite是一种轻量级的数据库,设计于在嵌入式设备上,占用资源少,通常在嵌入式设备上只占用几百kbSQLiteOpenHelper 使用SQLiteDatabase需要依靠辅助类SQLiteOpenHelper来对数据库进行操作;继承该类即可 它里面的方法: OnCreate() 第一次创建数据库时执行 OnOpen() 打
2015-10-08 21:21:11 541 2
原创 设计模式 -- 责任链模式
责任链设计模式概念:使用多个对象处理请求,多个对象处于一条链关系,请求沿着这条链进行传递处理,直至该请求被处理为止。使用方法:1. 定义一个接口或抽象类2. 继承抽象类或者实现该接口3. 设定好多个处理对象的关系,上下家关系,呈现一条链的结构使用责任链的好处和优点:1. 如果不使用责任链的设计模式,采用简单的if - else进行设计处理,将会使代码变得
2015-10-08 18:32:48 479
AMS注释源码(ActivityManagerService)
2020-10-15
清楚android项目工程drawable/mipmap/layout/menu路径下无用的资源文件
2018-10-26
ffmpeg移植到android的基础工程
2016-01-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人