- 博客(136)
- 资源 (4)
- 收藏
- 关注
原创 java基础总结
一. 面向对象: { 1.面向对象的思想 :基于面向过程的编程思想 特点:符合我们思想的 将复杂的简单化 将我们从执行者变为指挥者 开发:不断创建对象使用对象指挥对象做事情 设计:就是管理和维护对象之间的关系 特征:封装,继承,多态 2.类与对象及其使用 : 类:java中基本单位
2016-10-24 12:31:40 347
原创 android上传图片至服务器
本实例实现了android上传手机图片至服务器,服务器进行保存服务器servlet代码publicvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
2016-10-24 11:51:58 338
原创 Android开发中动画使用的注意事项
在Android开发过程中我们都知道,有一些比较酷炫的效果都是通过动画来实现的,Android提供了View动画、帧动画和属性动画三种动画,具体的使用方法和介绍网上有很多的介绍,这里我不做多余的赘述,在这篇博客里呢,我想就使用动画的一些注意事项做一些说明,希望对大家有用。1.OOM问题这个问题主要出现在帧动画中,当图片数量较多且图片较大时就极易出现OOM,这个在实际的开发中要尤其注
2016-10-12 17:43:56 387
原创 我眼中的View
1.每个View都只有一个父View2.整个视图只有一个根View 3.DecorView --- FrameLayout 3.1我们在写视图的时候,要尽可能的少写视图层级 3.2能用FrameLayout写的,就不要用RelativiLayout,能用RelativiLayout写的,就不要用LinearLayout。 4.我们通过setContentView设置的
2016-10-07 23:59:09 363 1
原创 AsyncTask研究
AsyncTask:关于线程池:asyncTask对应的线程池ThreadPollExecutor都是进程范围内共享的,都是static的,所以asyncTask控制着进程范围内所有的子类的实例.由于这个限制的存在,当使用默认线程池的时候,如果线程数超过线程池的最大容量,线程池就会爆掉(3.0后默认串行执行,不会出现这个问题).针对这种情况,可以尝试自定义线程池,配合asyncTask使用..
2016-10-06 23:44:24 307
原创 Android的面向组件开发
面向组件思想是在软件规模扩大,复杂度上升的背景下,以面向对象为基础而提出的一种软件设计思想。可以把它理解为一种更粗粒度的面向对象,其粒度一般大于对象,但具体要到什么程度,又可以根据实际情况来决定。这种思想以组件为基础,强调“服务”的概念。面向组件具有以下特点:低耦合性:组件之间一般互不依赖,一个组件只需要知道另一个组件的“名字”就可以访问它;高重用性:系统级的重用;高互操作性:不同
2016-10-05 02:34:22 337
原创 一些杂货
1. listview中converView复用 可以使用三元表达式 View view = convertView != null ? convertView :View.inflate(MainActivity.this, R.layout.item, null);2. 数据库帮助类有两个方法,第二个方法更新数据库用,只有版本号发生变化的时候掉用 3.
2016-10-04 13:11:45 364
原创 Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上
在之前一篇博文中 Android中View绘制流程以及invalidate()等相关方法分析>>,简单的阐述 了Android View 绘制流程的三个步骤,即: 1、 measure过程 --- 测量过程
2016-10-02 22:31:21 666
原创 Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下
上篇文章Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)>>中,我们 了解了View树的转换过程以及如何设置View的LayoutParams的。本文继续沿着既定轨迹继续未完成的job。 主要知识点如下:
2016-10-02 22:31:18 741
原创 view的测量,布局,绘制
矩形区域. Android原生桌面上的那些应用图标其实是 textview, 可以再 Android Device Monitor 中看(dump view).View只能有一个父View, 为什么? 这样设计, 系统底层只需跟最顶层的View交互. View是否必须有父View, 不是, 可以使用 WindowManager 加到屏幕上Android是 C/S 架构, 我们写的客户端
2016-10-02 22:31:16 354
原创 自定义控件3.自定义属性
在上一篇里, 自定义View的背景色和文字颜色都是在 onDraw 里写死的, 这次我们实现可以通过布局文件配置. 要实现这个功能, 需要有如下几个步骤:1. 创建 attrs.xml在 res/values 目录下新建一个 attrs.xml , 内容如下:xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.and
2016-10-02 22:31:13 286
原创 自定义控件2.第一个自定义view
自定义一个View, 继承自 View, 实现如下效果: 其实就是一个宽高为100的蓝色方块, 左下角红色字题 Hello! (上面的Hello world 是系统的 TextView).1. 继承 View, 重写 onDraw 方法/** * 自定义一个简单的 View * * @author GAOYUAN * */public class CustomView1 extends Vie
2016-10-02 22:31:11 343
原创 自定义控件1.官方文档翻译
Android offers a sophisticated and powerful componentized model for building your UI, based on the fundamental layout classes: View and ViewGroup. To start with, the platform includes a variety
2016-10-02 22:31:08 1354
原创 自定义组合控件
转自http://www.cnblogs.com/hdjjun/archive/2011/10/12/2209467.html 代码为自己编写目标:实现textview和ImageButton组合,可以通过Xml设置自定义控件的属性。 通过代码或者通过xml设置自定义控件的属性1.控件布局:以Linearlayout为根布局,一个TextView,一个ImageButton。 Xm
2016-10-02 22:31:06 279
原创 android图片缩放、放大demo - Android实例教程
示例原图: 拖动查看其他部分: 放大仔细查看 代码示例,注释比较详细,其他不多讲了package com.study.drascale;import android.os.Bundle;import android.app.Activity;import android.graphics.Matrix;import android.graphics.PointF;import androi
2016-10-02 22:31:01 1232
原创 显示大图片的技巧
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 sou
2016-10-02 22:30:59 416
原创 线程池的基本思想还是一种对象池的思想
线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比如:一个应用要和网络打交道,有很多步骤需要访问网络,为了不阻塞主线程,每个步骤都创建个线程,在线程中和网络交互,用线程池就变的简单,线程池是对线程的一种封装,
2016-10-02 22:30:56 853 2
原创 android压缩图片,解决oom错误
你的ImageView只有128*96像素的大小,只是为了显示一张缩略图,这时候把一张1024*768像素的图片完全加载到内存中显然是不值得的。所以我们需要一个方法来解决这个问题。[java] view plaincopypublic static int calculateInSampleSize(BitmapFactory.Options options, int reqWi
2016-10-02 22:30:54 387
原创 android从网络上异步加载图像
研究了android从网络上异步加载图像:(1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法。 在主线程中new 一个Handler对象,加载图像方法如下所示[java] view plaincopyprint?private void loadImage(final String url, final int id
2016-10-02 22:30:51 342
原创 使用Lrucache,图片滑动时使用默认图片,停止时加载
注意:LruCache是有版本限制的,低版本的sdk需要在libs文件夹添加相应的support-4v文件。本文改造的大部分是参考http://www.iteye.com/topic/1118828,感谢。不废话直接上工程代码,内有关键注释,项目就不上传了,自己对照着上面网址改呗。首先是Application文件,负责创建图片存储文件夹:public class MyApp extends App
2016-10-02 22:30:49 515
原创 Handler研究2-AsyncTask,AsyncQueryHandler分析
AsyncTask可以自己写一个 AsyncTask, 唉.实际开发中, 如果用 AsyncTask 访问网络, 可以重写一个AsyncTask, 加上判断网络状态的功能 protected abstract class MyHttpTask extends AsyncTask { // 当前BaseView类中无法获知需要进行什么操作 // protected
2016-10-02 22:30:46 323
原创 Handler机制中的五大对象
Handler机制中的五大对象android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类。 另外, 还有一个类: HandlerThread.Message: 消息MessageQueue: 消息队列Handler: 消息处理器, 发送,
2016-10-02 22:30:44 2437
原创 Handler机制.源码分析
Handler<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">机制的原理 :Android<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman
2016-10-02 22:30:41 499
原创 EmojiUtils
package com.fone.livechannel.ui.room;import java.io.FileInputStream;import java.util.regex.Matcher;import java.util.regex.Pattern;import android.content.Context;import android.graphics.Bitmap;import a
2016-10-02 22:30:38 753
原创 代码编译-反编译-解混淆
介绍Java的字节码一般是非常容易反编译的, 而android采用java编写, 生成的apk安装文件实际上就是一个压缩包, 可以将其解压缩, 再借用其他工具就能被反编译出来. 为了能对源代码就行一些必要的保护, 我们可以对编译好的class文件进行混淆处理. ProGuard的就是一个混淆器, 混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆,
2016-10-02 22:30:36 805
原创 android事件总线(eventbus)设计与实现
1. 功能介绍AndroidEventBus是一个Android平台的事件总线库, 它简化了Activity、Fragment、Service等组件或者对象之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。AndroidEventBus吸收了greenrobot的EventBus以及square的otto的优点,并在此基础上做出了相应的改进,使得事
2016-10-02 22:30:33 493
原创 android事件总线(eventbus)开源库发布
AndroidEventBus如果你不知道事件总线是什么,那么没有关系,下面我们先来看这么一个场景:你是否在开发的过程中遇到过想在Activity-B中回调Activity-A中的某个函数,但Activity又不能手动创建对象来设置一个Listener什么的? 你是否想在某个Service中想更新Activity或者Fragment中的界面? 等等之类的组件之间的交互问题……一经思考,你会发现An
2016-10-02 22:30:31 459
原创 事件分发机制完全解析_下
<span style="font-size:10.5pt;font-family:"微软雅黑","sans-serif";mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;mso-bidi-font-family:Arial;color:#333333">转载请注明出处:<span lang="EN-US" style="fo
2016-10-02 22:30:28 715
原创 Android事件总线
Android事件总线还能怎么玩?顾名思义,AndroidEventBus ( github链接 ,关于我为什么要写这个库请参考《AndroidEventBus ( 事件总线 ) 的设计与实现》)是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低,提升了我们的代码质量。
2016-10-02 22:30:26 540
原创 android优化内存_下
OOM: 内存泄露可以引发很多的问题:1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC)2.莫名消失(当你的程序所占内存越大,它在后台的时候就越可能被干掉。反之内存占用越小,在后台存在的时间就越长)3.直接崩溃(OutOfMemoryError) ANDROID内存面临的问题:1.有限的堆内存,原始只有16M2.内存大小消耗等根据设备,操作系统等
2016-10-02 22:30:23 377
原创 android内存优化大全_上
<span style="font-size:10.5pt;font-family:宋体;mso-bidi-font-family:Arial;color:#663333;border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm">转载请注明本文出自大苞米的博客(http://blog.csdn.ne
2016-10-02 22:30:21 535
原创 android内存优化大全_中
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识
2016-10-02 22:30:18 275
原创 Android 解决图片大量下载:软引用必须懂4点
Android 解决图片大量下载:软引用必须懂4点可能对于Android开发者来说,软引用这个词有的会不是很熟悉,软引用在Java开发中用的比较多,但是,在Android开发中引用软引用,会给我们解决很多难题。AD:1.对象的强、软、弱和虚引用为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为 :强引用、软引用、弱引用和虚引用备注: 这四种的区别:⑴强引用(StrongR
2016-10-02 22:30:15 215
原创 android内存优化5—对界面UI的优化(2)
在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候
2016-10-02 22:30:13 252
原创 android内存优化6—对界面UI的优化(3)
本篇博文主要讨论一下复杂界面中常用的一种技术——界面延迟加载技术。 有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中的“导入”以后,在当前的Activity中才会显示出一个导入好友的布局界面。从需求的角度来说,这个导入功能,一般情况下用户是不使用的。即大部分时候
2016-10-02 22:30:10 382
原创 android内存优化-Activity, Thread引起的内存泄露0
Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露。思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务。 1 /** 2 * 一个展示线程如何在配置变化中存活下来的例子(配置变化会导致创 3 * 建线程的Activity被销毁)。代码中的Activity泄露了,因为线程被实 4 *
2016-10-02 22:30:08 681
原创 android内存优化4—对界面UI的优化(1)
在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分
2016-10-02 22:30:05 260
原创 android内存优化3—从代码角度进行优化
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。 1)静态变量引起内存泄露在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类相关的变量
2016-10-02 22:30:00 279
原创 android内存优化-1-内存泄露
1.资源对象没关闭造成的内存泄漏描述:资源性对象比如(Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。它们的缓冲不仅存在于java虚拟机内,还存在于java虚拟机外。如果我们仅仅是把它的引用设置为null,而不关闭它们,往往会造成内存泄漏。因为有些资源性对象,比如SQLiteCursor(在析构函数finalize(),如果我们没
2016-10-02 22:29:58 225
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人