自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 android5.1应用打开次数统计(优化篇)

前一段时间写过有关统计文章,具体分析了系统原理和使用方法,但是使用过程中又碰到了统计不精确的问题,具体来说就是过滤方式导致的。之前的方式是获取当前包名的第一个classname作为key,但是在事件列表中可能会出现统计作为key的classname只出现一次而以后每次统计都没有该class参与,这就导致这个统计的应用次数出错。不太清楚的请参考之前文章 http://blog.csdn.net/el

2016-08-22 16:14:13 3290 3

原创 Android5.1应用打开次数获取

上篇文章已经解释了Android5.1系统是如何获取打开次数(如果不懂可以先读我上篇文章http://blog.csdn.net/elder_sword/article/details/50809642),但最后我们用系统api拿到的并不是精确的打开次数,有人可能会问,不就一个打开次数嘛,我去写个service,不断去扫栈顶activity获取包名来监听次数不可以吗?当然可以,只要你能接受。这里我接

2016-03-05 17:52:19 3932 4

原创 Android5.1应用统计源码分析

android系统自带一个统计应用打开次数和上次运行时间的api,但是每次版本升级都会带来很多的变化,这一块也不例外,但唯一没有改变的就是从拨号盘输入\*#\*#4636#\*#\* 进入工程模式,然后点击使用情况统计数据,你就会看到统计的界面了。这里我只分析5.1的这块代码,以前版本网上也有人写博客分析,但是5.1的资料很少,以前那一套已经不适用。frameworks / base / core

2016-03-05 16:52:01 4081 4

原创 Android开发艺术探索3

Android开发艺术探索3该系列文章为《Android开发艺术探索》读书笔记,仅作为学记录,勿喷。 View基础知识1 View是Android中所有控件的基类,是一种界面层的控件的一种抽象,它代表了一个控件 2 viewgroup 继承 view 3 top、left、right、bottom,分别对应View的左上角和右下角相对于父容器的横纵坐标值x = left + translationX

2016-08-07 19:20:04 499 4

原创 单例模式

该系列博客为读《android源码设计模式解析与实战》的个人知识点记录。单例模式定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例实现单例模式关键点构造函数不对外开放,一般为Private;通过一个静态方法或者枚举返回单例对象;确保单例的对象有且只有一个,尤其是在多线程环境下;确保单例类对象在反序列化时不会重新构建对象。单例模式的实现方式饿汉模式public cla

2016-07-25 10:11:45 407

原创 Android开发艺术探索2

Android开发艺术探索2该系列文章为《Android开发艺术探索》读书笔记,仅作为学记录,勿喷。Android IPC简介IPC是Inter-Process Communication 的缩写,含义为进程间通信,是指两个进程之间进行数据交换的过程。任何一个操作系统都需要有相应的IPC机制,Linux上可以通过命名通道、共享内存、信号量等来进行进程间通信。Android系统使用了Binder机

2016-07-17 18:13:01 2941

原创 Android开发艺术探索1

Android开发艺术探索1该系列文章为《Android开发艺术探索》读书笔记,仅作为学记录,勿喷。Activity的生命周期onCreate表示Activity正在被创建,可以做一些初始化工作 eg:setContentViewonRestart表示Activity正在重启。一般当前Activity不可见会调用onRestart。按下home->onPause->onStop->重新进入onR

2016-07-17 18:01:41 1882

原创 DialogFragment设置Cancelable(false)不起作用

这两天碰到一个问题,在DialogFragment中想让dialog不消失,一般说直接设置setCancelable(false)就完了,但始终没有起作用。代码如下:@Overridepublic Dialog onCreateDialog(Bundle savedInstanceState) { int title = getArguments().getInt("title");

2016-07-12 09:45:50 4577

原创 几种获取Android手机唯一id的方法

一般都是用IMEI 获取方法String imei =((TelephonyManager) context.getSystemService(TELEPHONY_SERVICE)).getDeviceId();String IMEI =android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IM

2016-06-24 11:01:35 11832

原创 面向对象六大原则

该系列博客为读《android源码设计模式解析与实战》的个人知识点记录。单一职责原则Single Responsibility Principle 缩写SRP。定义:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是有一组相关性很高的函数、数据的封装。基本指导原则:两个完全不一样的功能就不应该放在一个类中,一个类中应该是一组相关性很高的函数、数据的封装开闭原则Open Close

2016-06-17 18:05:03 318

原创 加载图片中默认图适配

前段时间项目让调ui,所有图片的默认图统一,但是大大小小的图片有好多,来回改比较麻烦。所以把我的思路在这里记一下。主要实现方式就是利用layer-list small_image.xml<?xml version="1.0" encoding="utf-8"?><level-list xmlns:android="http://schemas.android.com/apk/res/andr

2016-05-14 18:26:08 1607 1

原创 Android5.1 MTK平台实现桌面图标显示未读数量

写这篇文章可能对于应用层的开发者帮助不大,我也只是记录一下。 桌面为未读数角标对于不同的Rom实现都是不同的,android原生系统没有该功能,各厂商手机的实现调用方式也不一样。至于怎么添加可以去看这篇文章http://blog.csdn.net/eclipsexys/article/details/50206055。前两天系统要做一个ota升级的功能,升级后要在Settings上显示角标,然后老

2016-01-14 15:35:59 1332

原创 Toolbar的完全自定义

Toolbar是什么,不知道的可以去大神的博客瞻仰下 http://blog.csdn.net/lmj623565791/article/details/45303349 我当时也是看这篇学习的,但是怎么说,看完之后想在自己的项目中把Toolbar完全自定义的时候,博客中并没有讲解。这篇博客也只是一个记载,并没有很高深的技术,废话不多说。一般大家在写Toolbar的布局一般在menu.xml中,

2015-06-25 11:53:07 3624 3

原创 PopupWindow中嵌套EditText不能粘贴的问题

之前在项目中遇到个问题 就是写一个简单的评论框,当时是用popupwindow写的,里面嵌套Edittext,但刚做完就碰到个问题,就是虽然Edittext获得焦点但是不弹出软键盘(有点蛋疼),无奈只好手动去调用和取消键盘private void autoFocus() { InputMethodManager imm = (InputMethodManager)mContex

2015-06-24 17:24:32 6618

原创 注解

注解(Annotation) 注解是JDK1.5的新特性,相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记.当为程序打上标记后,javac编译器、开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,并根据指定的标记做相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。 JavaAPI中提供的注解:@Sup

2013-07-21 11:58:47 540

原创 其他API

Api中的其他常见对象,这些对象都具备着一些小特点:1, System类:     不可以被实例化。没有构造函数。     该类中的方法都是静态的。     常见方法:exit().cunrrentTimeMillis();gc(); getProperties();getProperties方法是用来获取系统属性的。   系统属性信息:就是程序在运行时获取到jvm以及所在

2013-07-21 11:56:31 506

原创 JDK1.5新特性

JDK1.5新特性 1 静态导入静态导入用于简化程序对静态类属性和方法的调用语法:Importstatic 包名.类名.静态属性|静态方法|*例如:import static java.lang.System.outimport static java.lang.Math.*2 自动装箱/拆箱自动装箱:把一个基本数据类型直接赋给对应的包装类。比如:Integ

2013-07-21 11:53:00 412

原创 IO<一>

IO概述。        IO流用来处理设备之间的数据传输        Java对数据的操作是通过流的方式        Java用于操作流的对象都在IO包中        流按操作数据分为两种:字节流与字符流。          流按流向分为:输入流,输出流。     如何判断是输入流,还是输出流:         以内存为参照,如果数据向内存流动,则是输入流,反之

2013-07-21 11:50:15 515

原创 IO<二>

File: File类是io包中唯一代表磁盘文件本身的对象,File类定义了一些与平台无关的方法来操作文件, 可以通过调用File类中的方法,实现创建.删除.重命名文件等,File类是对象主要用来获取未文件本身 的一些信息,如文件所在的目录,文件的长度.文件的读写权限等.数据流可以将数据系写入到文件中, 而文件也是数据流最常用的数据媒体. 构造方法:  File(F

2013-07-21 11:48:35 640

原创 泛型

泛型(Generic)泛型:jdk1.5版本,出现的技术。是一个安全机制。泛型技术的由来:集合中可以存储任意类型对象,但是如果要使用具体对象的特有方法时,需要进行向下转型,如果存储的对象类型不一致,在转型过程中就会出现ClassCastException异常。这样就给程序带来了不安全性。 在jdk1.5以后就有了解决方案。就是泛型技术。解决方案就是,在存储元素时,就不允

2013-07-21 11:47:18 469

原创 Map、Collections、Arrays

集合框架中的另一个顶层接口:MapMap:用于存储具备着对应关系的键和值。而且要保证键的唯一性。一次存储一对元素。Collection一次存储一个元素。称之为单利集合。Map集合一次存储一对元素,称之为双列集合Map常见方法:1, 添加。v put(k,v)voidputAll(map);2, 删除void clear():清空集合v remove(key)

2013-07-21 11:38:57 650

原创 List、Set

Collection|——List:列表        特点:1, 有序(存储元素的顺序和取出元素的顺序一致)2, 该集合中的元素都有索引,所以可以通过索引(角标)来访问元素。3, 它可以存储重复元素 常见子类对象:学习该对象的特有数据结构及相关特点|——Vector:JDK1.0就存在了。底层是数组结构的。可变长度数组。      原理:一旦原数组长度不够

2013-07-21 11:36:07 660

原创 基本数据类型封装类、Collection、Iterator

基本数据类型对象包装类 想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象因为在对象描述中就可以定义更多的属性和行为对该基本类型数据进行操作byte           Byteshort          Shortint            Integerlong           Longfloat           Floatdoub

2013-07-21 11:33:05 929

原创 String、StringBuffer、StringBuilder

String类的特点:1, java语言中用于描述最常见的字符串数据的对象。2, 字符串数据都是一个对象3, 字符串数据一旦初始化就不可以被改变了。双引号表示的都是字符串常量。4, 字符串对象都存储在常量池中。字符串常量池。String s1=”abcd”;//这时在常量池中创建了一个字符串对象。String s2=new String(“abcd”);//这是在堆内存创建

2013-07-21 11:26:48 708

原创 多线程

进程:正在进行中的程序线程:就是进程中一个执行单元或执行情景或执行路径负责进程中程序执行的控制单元一个线程中至少要有一个线程。当一个进程中线程有多少个时,就是多线程。多线程解决的问题:可以多部分代码同时执行。Jvm在启动线程的时候,每一个线程都有自己要执行的内容。其中一个负责执行main函数中的内容:这个线程称之为主线程 main负责垃圾回收器运行的称之为垃圾回收线程每

2013-07-21 11:21:25 652

原创 接口、多态、内部类、异常

接口:当一个抽象类中全部是抽象方法的时候,这时,可以将这个抽象类定义成接口。接口是一个特殊的抽象类。初期的一种简单理解。意味着接口中的方法都是抽象方法。接口定义的格式:interface 接口名{接口内容}接口中的成员。都有固定修饰符。    常见:       1,常量。全局常量 有固定修饰符 public static final       2,抽象方法。固定

2013-07-21 11:15:22 664

原创 继承,抽象类

继承:     好处:提高了代码的复用性,让类与类之间产生了关系。                 将对象中的共性内容不断地向上抽取,就形成了关系,就有了继承,有了子父类。     继承特点:                java中只能但继承,多继承的机制被java语音改良了。          单继承:一个类只能有一个父类。     多继承:一个

2013-07-06 16:40:39 1038

原创 单例设计模式、包

设计模式:解决问题的一种行之有效的思想。单例设计模式:解决:保证了一个类在内存中只能有一个对象。 比如多程序访问同一个配置文件。希望多程序操作的都是同一个配置文件中的数据。那么就需要保证该配置文件对象的唯一性。思路:怎么做才能保证这个对象是唯一的呢?1, 其他程序随时用new创建该类对象,无法控制个数。      结论:不让其他程

2013-07-06 16:19:13 659

原创 面向对象、代码块

面向对象:其实是一种思想。重点强调的是具体的事物将大象装进冰箱里。面向过程的思想来思考:1,打开冰箱2,存储大象3,关上冰箱过程可以理解为动作 面向对象的思考方式:1, 冰箱打开2, 冰箱存储大象3, 冰箱关上强调的是冰箱。而这些动作都是冰箱应该具备的动作。只要找到了冰箱,就可以操作冰箱的这些动作。 面向对象的特点:

2013-07-06 16:10:47 584

原创 java基础

Java基础Java语言的三种技术架构:J2EE(Java 2 Platform Enterprise Edition)企业版是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如Servlet Jsp等,主要针对于Web应用程序开发。J2SEJava 2 Platform Standard Edition)标准版是为开发普通桌面和商务应用程序提供

2013-07-06 15:45:17 568

UsageTest.rar

android5.1应用打开次数统计,UsageStatsManager 的使用

2016-03-05

空空如也

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

TA关注的人

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