自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

此博客已停用,博文会逐渐转移到新地址,http://blog.csdn.net/liupeifeng3514

此博客已停用,博文会逐渐转移到新地址,http://blog.csdn.net/liupeifeng3514

  • 博客(54)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android问题—定义全局数据代替Intent传递数据

直接定义全局数据 如果是传递简单的数据,有这样的需求,Activity1 -> Activity2 -> Activity3 -> Activity4, 你想在Activity中传递某个数据到Activity4中,怎么破,一个个页面传么? 显然不科学是吧,如果你想某个数据可以在任何地方都能获取到,你就可以考虑使用 Application全局对象了! Android系统在每个程

2017-03-31 16:18:59 466

原创 Android例子—Intent之复杂数据的传递

Intent传递简单数据 就是可以直接通过调用Intent的putExtra()方法存入数据,然后在获得Intent后调用getXxxExtra获得 对应类型的数据;传递多个的话,可以使用Bundle对象作为容器,通过调用Bundle的putXxx先将数据 存储到Bundle中,然后调用Intent的putExtras()方法将Bundle存入Intent中,然后获得Intent以后, 调用get

2017-03-31 15:59:06 1365

原创 Android例子—简单定时后台线程的实现

前者不适合于需要长期在后台运行的定时任务,CPU一旦休眠,Timer中的定时任务 就无法运行;Alarm则不存在这种情况,他具有唤醒CPU的功能,另外,也要区分CPU 唤醒与屏幕唤醒!使用流程:Step 1:获得Service: AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);Step 2:通过set

2017-03-31 11:24:28 1102

原创 Android例子—常用系统Intent合集

//===============================================================//1.拨打电话// 给移动客服10086拨打电话Uri uri = Uri.parse("tel:10086");Intent intent = new Intent(Intent.ACTION_DIAL, uri);startActivity(intent)

2017-03-31 10:15:54 668

原创 Android例子—自定义ContentProvider

接下来我们就来一步步实现: 在开始之前我们先要创建一个数据库创建类: DBOpenHelper.javapublic class DBOpenHelper extends SQLiteOpenHelper { final String CREATE_SQL = "CREATE TABLE test(_id INTEGER PRIMARY KEY AUTOINCREMENT,name)";

2017-03-30 21:56:43 275

原创 Android例子—内容提供者操作手机联系人

简单的读取手机联系人核心代码private void getContacts(){ //①查询raw_contacts表获得联系人的id ContentResolver resolver = getContentResolver(); Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; //查询联

2017-03-30 21:35:28 451

原创 Android例子—内容提供者操作收件箱信息

核心代码:private void getMsgs(){ Uri uri = Uri.parse("content://sms/"); ContentResolver resolver = getContentResolver(); //获取的是哪些列的信息 Cursor cursor = resolver.query(uri, new String[]{"addre

2017-03-30 18:42:33 495

原创 Android基础—ContentProvider概念讲解

ContentProvider概念讲解

2017-03-30 18:39:53 303

原创 Android基础—常用的系统广播总结

Intent.ACTION_AIRPLANE_MODE_CHANGED;//关闭或打开飞行模式时的广播<strong>Intent.ACTION_BATTERY_CHANGED;//充电状态,或者电池的电量发生变化//电池的充电状态、电荷级别改变,不能通过组建声明接收这个广播,只有通过Context.registerReceiver()注册<strong>Intent.ACTION_BATTE

2017-03-30 16:23:20 304

原创 Android例子—直接通过Binder的onTransact完成跨进程通信

Android可以通过Binder的onTrensact方法来完成通信,下面就来简单试下下,还是前面那个根据 序号查询名字的例子:服务端实现:/** * Created by Jay on 2015/8/18 0018. */public class IPCService extends Service { private static final String DESCRIPTOR =

2017-03-30 12:01:35 6409 1

原创 Android问题—传递复杂数据的AIDL Service

实际开发中,我们可能需要考虑传递复杂数据类型的情况!下面我们来学习下 如何向服务端传递复杂数据类型的数据!开始之前我们先来了解Parcelable接口!Parcelable接口简介: 相信用过序列化的基本上都知道这个接口了,除了他还有另外一个Serializable,同样是用于序列化的, 只是Parcelable更加轻量级,速度更快!但是写起来就有点麻烦了,当然如果你用的as的话可以用 的插件

2017-03-30 11:01:23 634

原创 Android例子—AIDL实现两个进程间的简单通信

1.服务端Step 1:创建AIDL文件IPerson.aidlpackage com.jay.aidl;interface IPerson { String queryPerson(int num);}我们打开IPerson.java看看里面的代码: IPerson.java/* * This file is auto-generated. DO NOT MODIFY. * Or

2017-03-30 10:38:54 501

原创 Android基础—Binder机制

IBinder和Binder是什么鬼?我们来看看官方文档怎么说: 中文翻译: IBinder是远程对象的基本接口,是饿了高性能而设计的轻量级远程调用机制的核心部分。但他 不仅用于远程调用,也用于进程内调用。该接口定义了与远程对象间交互的协议。但不要直接实现 这个接口,而是继承(extends)Binder。 IBinder主要的API是transact(),与之对应的API是Bind

2017-03-30 10:00:00 545

转载 程序员debug三大定律

声明首先声明,本文其实是写给管理程序员的人看的。如果你是程序员,看了以后可能会对你的职业生涯产生负面影响,慎入!至于其他闲杂人等,可以了解一下码农的工作状态,看个乐子。什么是debug?程序员的debug,即除虫,把没有按照预期方式正常运行的代码块修正。这个过程分为3个步骤:找到它

2017-03-30 08:26:36 2113 1

原创 Android基础—Service启动流程分析

Service的生命周期图生命周期解析好的,从上图的生命周期,我们可以知道,Android中使用Service的方式有两种:StartService()启动ServiceBindService()启动Service PS:还有一种,就是启动Service后,绑定Service!相关方法详解:onCreate():当Service第一次被创建后立即回调该方法,该方法在整个生命周期 中只会调用

2017-03-28 22:35:53 418

原创 Android例子—Activity与Service通信

我们前面的操作都是通过Activity启动和停止Service,假如我们启动的是一个下载 的后台Service,而我们想知道Service中下载任务的进度!那么这肯定是需要Service 与Activity进行通信的,而他们之间交流的媒介就是Service中的onBind()方法! 返回一个我们自定义的Binder对象!基本流程如下:自定义Service中,自定义一个Binder类,然后将需要暴露

2017-03-28 22:18:11 456

原创 Android基础—IntentService的使用

如果我们直接把 耗时线程放到Service中的onStart()方法中,虽然可以这样做,但是很容易 会引起ANR异常(Application Not Responding),而Android的官方在介绍 Service有下面这样一段话:直接翻译:1.Service不是一个单独的进程,它和它的应用程序在同一个进程中2.Service不是一个线程,这样就意味着我们应该避

2017-03-28 21:55:35 427

原创 Android例子—开源中国客户端Activity管理类

package net.oschina.app;import java.util.Stack;import android.app.Activity;import android.app.ActivityManager;import android.content.Context;public class AppManager { private static Stack<Activit

2017-03-28 18:42:35 294

原创 Android例子—设置Activity全屏的三种方法

1)代码隐藏ActionBar 在Activity的onCreate方法中调用getActionBar.hide();即可2)通过requestWindowFeature设置 requestWindowFeature(Window.FEATURE_NO_TITLE); 该代码需要在setContentView ()之前调用,不然会报错!!! 注:把requestWindowFeature(W

2017-03-28 09:11:35 1282

原创 Android例子—为Activity设置过场动画

所谓的过场动画就是切换到另外的Activity时加上一些切换动画,比如淡入淡出,放大缩小,左右互推等! 当然,我们并不在这里详细讲解动画,后面有专门的章节来讲解这个,这里只教大家如何去加载动画,另外 给大家提供了一些比较常用的过渡动画,只要将相关动画文件添加到res/anim目录下,然后下述方法二选一 就可以实现Activity的切换动画了!1)方法一:2)方法二:通过style进行配置,这个是全

2017-03-28 09:03:06 2679 1

原创 Android例子—双击退出程序的两种方法

1、定义一个变量,来标识是否退出// 定义一个变量,来标识是否退出 private static boolean isExit = false; Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.

2017-03-28 08:45:00 1254

原创 Android例子—关闭所有Activity_完全退出App的方法

随时关闭所有Activity 有时我们可能会打开了很多个Activity,突然来个这样的需求,在某个页面可以关掉 所有的Activity并退出程序!好吧,下面提供一个关闭所有Activity的方法, 就是用一个list集合来存储所有Activity!具体代码如下:public class ActivityCollector { public static LinkedList<Ac

2017-03-28 08:36:25 2060 1

转载 Android基础—Notification(状态栏通知)详解

1.设计文档部分解读1)Notification的基本布局上面的组成元素依次是:Icon/Photo:大图标Title/Name:标题Message:内容信息Timestamp:通知时间,默认是系统发出通知的时间,也可以通过setWhen()来设置Secondary Icon:小图标内容文字,在小图标的左手边的一个文字

2017-03-22 11:21:58 2429

转载 Android例子—自定义Toast(吐司)样式

1.直接调用Toast类的makeText()方法创建这是我们用的最多的一种形式了!比如点击一个按钮,然后弹出Toast,用法: Toast.makeText(MainActivity.this, "提示的内容", Toast.LENGTH_LONG).show(); 第一个是上下文对象!对二个是显示的内容!第三个是显示的时间,只有LONG和SHORT两种 会生效,即时你定义了其他的值,最

2017-03-22 09:22:27 1630

转载 Android问题—反编译APK获取代码&资源

1.要准备的三个工具apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)jd-gui:查看2中转换后的jar文件,即查看Java文件 为了方便各位读者,这里将三个打包到一起放到云盘中,又需要的可以进行下载: 反编译相关的三个工具.zip2.使用a

2017-03-16 22:10:21 982

原创 JAVA基础—格式化数字DecimalFormat

在输出数字时,有时需要给数字配上单位,有时需要数字具有一定的精度,也有时需要用科学计数法表示数字。关键技术剖析:java.text.DecimalFormat类专门用于格式化数字。需要为DecimalFormat提供格式化模式Pattern。通过构造方法或者DecimalFormat的applyPattern方法设置模式。Pattern的类型为字符串。调用DecimalFormat的form

2017-03-10 09:07:57 575

转载 Android基础—.9 图片讲解

什么是.9图片至于什么是.9图片这里就简单提一下,即图片后缀名前有.9的图片,如pic.9.png、pic1.9.jgp,诸如此类的图片就称为.9图片。 .9图片的作用①.9图片的作用是在图片拉伸的时候特定的区域不会发生图片失真,至于哪些部分不会失真那么得看你的图片是如何绘制的。②当一张图片作为背景时可以指定前景内容的显示区域。如图:

2017-03-09 07:43:30 226

原创 MyBatis—调用mysql存储过程 带输出输入参数

存储过程都是一样的,只是根据自己的喜好,可以用MAP或者JAVABEAN传递参数。-- ---------------------------------------------------------------------------------- Routine DDL-- Note: comments before and after the routine body will not

2017-03-08 10:20:54 827

原创 版本管理—Git之使用GitHub搭建远程仓库

本节引言:在上一节中,我们学习了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等;读者肯定不满足与本地是吧,假如是多个人一起来开发一个程序呢?我们需要一个作为服务器的远程仓库!当然搭建一个服务器是需要成本的,为什么不把项目托管到Github上呢?作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,

2017-03-07 23:57:41 490

原创 版本管理—Git使用教程之本地仓库的基本操作

Git是什么?一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程

2017-03-07 23:10:20 438

原创 Android问题—SDK更新不了问题解决

问题阐述相信大家在更新SDK的时候都会遇到更新不了的问题,而且打不开Google搜索,这是因为天朝墙了Google,所以要么只能通过VPN代理又或者改HOSTS才能访问,更新SDK!本节来介绍两种更新SDK的方法!1.修改hosts文件直接百度"Google hosts 2015"就有一堆了,而笔者常用的是: google hosts 2015,持续更新-360

2017-03-07 22:12:05 1649

转载 JavaScript—深入理解JavaScript 模块模式

基础知识首先我们开始简单概述模型模式。三年前Eric Miraglia(YUI)的博文使模型模式众所周知。如果你已经很熟悉模型模式,可以直接阅读“高级模式”。匿名闭包这是一切成为可能的基础,也是JavaScript最好的特性。我们将简单的创建匿名函数,并立即执行。所有函数内部代码都在闭包(closure)内。它提供了整个应用生命周期的私有和状态。(function ()

2017-03-07 07:38:43 286

翻译 JavaScript—箭头函数

箭头函数表达式的语法比函数表达式短,并且不绑定自己的 this,arguments,super或 new.target。此外,箭头函数总是匿名的。这些函数表达式最适合非方法函数,它们不能用作构造函数。语法EDIT基础语法(param1, param2, …, paramN) => { statements }(param1, param2, …, paramN) => exp

2017-03-06 21:58:40 394

原创 MySQL系列—复制表结构的方法小结

本文给大家分享了好几种复制表结构、表数据的示例介绍,具体详情请看下文吧。1、复制表结构及数据到新表CREATE TABLE 新表SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(au

2017-03-06 17:24:36 561

原创 JavaScript—内存管理

简介EDIT诸如 C 语言这般的低级语言一般都有低级的内存管理接口,比如 malloc() 和 free()。而另外一些高级语言,比如 JavaScript, 其在变量(对象,字符串等等)创建时分配内存,然后在它们不再使用时“自动”释放。后者被称为垃圾回收。“自动”是容易让人混淆,迷惑的,并给 JavaScript(和其他高级语言)开发者一个印象:他们可以不用关心内存管理。然而这是错误

2017-03-06 17:07:37 314

原创 JavaScript—在循环中创建闭包:一个常见错误

在循环中创建闭包:一个常见错误EDIT在 JavaScript 1.7 引入 let 关键字 之前,闭包的一个常见的问题发生于在循环中创建闭包。参考下面的示例:p id="help">Helpful notes will appear herep>p>E-mail: input type="text" id="email" name="email">p>p>Name: input

2017-03-05 10:21:05 505

原创 JavaScript—用闭包模拟私有方法

用闭包模拟私有方法EDIT诸如 Java 在内的一些语言支持将方法声明为私有的,即它们只能被同一个类中的其它方法所调用。对此,JavaScript 并不提供原生的支持,但是可以使用闭包模拟私有方法。私有方法不仅仅有利于限制对代码的访问:还提供了管理全局命名空间的强大能力,避免非核心的方法弄乱了代码的公共接口部分。下面的示例展现了如何使用闭包来定义公共函数,且其可以访问私有函

2017-03-04 18:40:05 603

原创 JavaScript—闭包的一个小实例

实用的闭包EDIT闭包确实有用吗?让我们看看闭包的实践意义。闭包允许将函数与其所操作的某些数据(环境)关连起来。这显然类似于面向对象编程。在面对象编程中,对象允许我们将某些数据(对象的属性)与一个或者多个方法相关联。因而,一般说来,可以使用只有一个方法的对象的地方,都可以使用闭包。在 Web 中,您可能想这样做的情形非常普遍。大部分我们所写的 Web JavaScript

2017-03-04 18:26:49 302

原创 JavaScript—相等性判断

JavaScript 提供三种不同的比较操作符:严格相等,使用 ===(非严格)相等,使用 ==以及 Object.is (ECMAScript 6 新特性)ES2015标准提供以下四种比较操作符:(非严格)相等 (==)严格相等 (===): 用于Array.prototype.indexOf, Array.prototype.lastIndexOf, 以及 ca

2017-03-04 17:52:16 633

原创 JavaScript—内存泄露

内存泄露使用闭包的一个坏处是,在 IE 浏览器中它会很容易导致内存泄露。JavaScript 是一种具有垃圾回收机制的语言——对象在被创建的时候分配内存,然后当指向这个对象的引用计数为零时,浏览器会回收内存。宿主环境提供的对象都是按照这种方法被处理的。浏览器主机需要处理大量的对象来描绘一个正在被展现的 HTML 页面——DOM 对象。浏览器负责管理它们的内存分配和回收。IE

2017-03-04 17:38:56 339

传递复杂数据的AIDL Service的实现

传递复杂数据的AIDL Service的实现

2017-03-30

使用AIDL完成进程间的简单通信

使用AIDL完成进程间的简单通信

2017-03-30

ListView Item多布局的实现

ListView Item多布局的实现

2017-03-21

可复用的自定义BaseAdapter

2017-03-21

Android源码编译环境配置步骤(详细、有截图)

Android源码编译环境配置步骤(详细、有截图) VirtualBox、Ubuntu下载、安装、配置

2017-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除