自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luffy的专栏

请叫我小白

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

原创 Android HandlerThread

HandlerThread继承Thread,是一个包含了Looper的Thread,方便了子线程之间的通信。源码:/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may ...

2018-12-11 13:24:53 235

原创 Android IntentService

IntentService是一个含有消息循环的Service,它是一个service,所以service相关具有的特性他都有,同时他还有一些自身的属性,其内部封装了一个消息队列和一个HandlerThread,在其具体的抽象方法:onHandleIntent方法是运行在其消息队列线。  IntentService源代码:/* * Copyright (C) 2008 The A...

2018-12-11 12:38:25 383

原创 eclipse 启动闪退

删除,workspace目录下的 /.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi 假如还不行,顺便把这个/.metadata/.plugins/org.eclipse.core.resourses/.snap也删掉。

2017-07-25 20:10:27 533

转载 实现Recovery形式本地化显示文本定制(recovery_l10n工具的使用

前言:在实际的ROM修改中,Recovery的修改还是会经常遇到的,这篇文章主要讲解如何修改Recovery字符串。 首先我们先了解下大概的流程。1.screen_ui.cpp 中的ScreenRecoveryUI::Init() 负责加载基本资源信息。2.Init()调用    LoadLocalizedBitmap("installing_text",

2017-03-22 15:51:29 3440 1

原创 Linux tar zip压缩

tar:tar -cvf /sdcard/aa.zip -C /home/test/test2/ . //压缩test2文件夹,不包含目录结构,注意最后的点tar -zcvf /home/zhanglei/test.tar.gz -C /home/zhanglei/server/file/20110831152025/ 119090 记住最后一个119090和前面是空开的

2017-03-22 10:18:31 567

原创 Android-C代码获取系统属性

1.添加头文件:#include <cutils/properties.h>2.system/core/libcutils/properties.c#define PROPERTY_KEY_MAX 32#define PROPERTY_VALUE_MAX 92int property_get(const char *key, char *value, const char *default

2017-03-20 14:15:26 5059

原创 Android 6.0区别U盘和SD卡设备

public static boolean isSdcardExists(Context context) { StorageManager storageManager = StorageManager.from(context.getApplicationContext()); List<VolumeInfo> volumes = storageManager.ge

2017-03-15 16:36:01 2985 2

转载 Security problem, see Jack server log

最近编译Android6.0时经常出现以下错误临时解决方法:Building with Jack: out/target/common/obj/APPS/Launcher3_intermediates/with-local/classes.dexERROR: Security problem, see Jack server log (/tmp/jack-weilan/jack

2017-03-10 14:26:48 1870

原创 获取接口调用者的包名

应用场景:一个service有对外开放的接口,在让外部app调用接口的时候需要获取调用者的包名,则可以以下方式获得,可以用于权限控制等 mContext.getPackageManager().getNameForUid(Binder.getCallingUid());如果是具有系统权限的app,返回值为android.uid.system:1000; 如果是普通app,返回值为包名

2016-12-21 17:24:44 6838

转载 Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能2、AlarmManager的常用方法有三个:(1)set(int type,long startTime,PendingIntent pi);该方法用于设置一次性闹钟,第一个参数表

2016-12-19 14:47:11 1908

转载 [译]图解Android应用的后台任务和提醒

对于很多应用而言,构建后台任务是重要的一环。其中一种方式是:使用AlarmManager注册定时器唤醒未在前台启动的应用(例如闹钟,译者注)。如何优雅低使用定时器类和API,它们是不是你的最佳选择?下面让我们看看如何抉择。 唤醒频率?对于少于60秒的唤醒,定时器类并不是最优解:使用更高效的的Handler来处理频发的任务。 希望用户看到计时?对于API21+(Android5.0以上,译者注),

2016-12-19 14:32:54 561

转载 Android 6.0变化之休眠模式

休眠:Android 6.0最大变化之一就是加入了新的电量管理模式:休眠模式,当设备一段时间不用的时候,当屏幕关闭的时候,系统会自动进入休眠模式。这样所有的App都将进入挂起模式,不能在接入 网络等一些操作。 当然系统也会定期的退出休眠模式,来完成App延迟的工作,在这个空窗期(我暂且就这么叫),系统会运行所有同步,工作,提醒等,并允许app接入网络。 当过了空窗期后,系统会重新进入休眠期,Ap

2016-12-19 14:30:33 1895

转载 Android之MediaStore

在日常开发中,我们经常会使用MediaStore来获取手机的音频、图片、视频等相关信息。下面3个是常见的内部类:MediaStore.Audio获取音频信息的类MediaStore.Images获取图片信息MediaStore.Video获取视频信息1、MediaStore.Audio在这个类中我们可以获取音频的专辑、艺术家、流派等等,通过 MediaStore.Audio.AlbumColumns

2016-12-14 15:24:01 10366 4

原创 Android 系统开发常用的目录(崩溃日志/wifi密码等)

系统奔溃的日志目录:/data/system/dropbox/查看wifi密码:/data/misc/wifi/wpa_supplicant.conf .//psk=”“就是密码,明文显示

2016-11-23 15:58:03 1687

转载 Android UsageStatsService:要点解析

1、UsageStatsService作用是什么?这是一个Android私有service,主要作用是收集用户使用每一个APP的频率、使用时常;2、如何通过UsageStatsService获取用户使用APP的数据?(1)必须要具备系统权限;(APP内置在/system/app下)(2)必须要在manifest中申明权限:PACKAGE_USAGE_STATS;例如: [html] view pl

2016-11-23 15:40:12 5106 1

转载 Android5.1 Framework分析----如何在SystemServer中添加系统服务

本文以mtk android5.1为研究对象。Android的系统服务都是托管给ServiceManager管理的,我们可以自定义一个自己的服务,并将其添加到ServiceManager中,本文以添加一个Tts语音服务为例,供应用层调用。1、首先,在frameworks/base/core/Java/android/app中新建一个aidl文件 ITtsManager.aidl,内容如下:[java

2016-11-17 20:17:21 746

原创 Android 联系人数据库contacts2.db介绍

参考:http://blog.csdn.net/flying_vip_521/article/details/7258805https://my.oschina.net/gabriel1215/blog/492051项目描述:该项目为基于Android平台的手机通讯录,主要模块分为四个部分:联系人管理模块,通话记录管理模块

2016-11-09 16:50:41 6578

转载 Android广播sendBroadcast(intent,receiverPermission)解析

偶然看到发送广播的一个方法里带着多个参数,而大部分网上教程讲解的都是只带一个参数(intent)的sendBroadcase( ),所以决定对这个带多个参数的方法研究一下,过程甚是艰辛。       第二个参数从名字上来看,似乎是某个权限。关于自定义权限的问题,请看我另一篇博文Android自定义权限怎样设置。       先从最简单的开始入手。        1、AndroidMan

2016-09-22 17:44:16 2236

转载 Android使用Builder模式自定义Dialog

首先说说为啥要自定义Dialog,在任何软件操作系统中,Dialog即对话框都是一种重要的交互模式与信息载体,而Android系统本身的Dialog拥有固定的样式,并且在5.0后采用Material Design设计风格的Dialog美观大气。但是我们开发人员在实际项目过程中遇到的需求是多种多样的,有时我们要匹配APP自己的设计风格,有时我们会觉得系统的对话框使用起来不够自由,因此自己定义一个适合

2016-08-15 14:33:13 5949 2

转载 Andorid MVP模式

Android MVP模式 \[1\] 也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候, MVP模式 的优势就充分显示出来了。导读:MVP模式是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些C

2016-08-08 09:49:12 983

原创 自定义ContentProvider

一、引入:数据库在Android当中是私有的,不能将数据库设为WORLD_READABLE,每个数据库都只能创建它的包访问。这意味着只有创建这个数据库的应用程序才可访问它。也就是说不能跨越进程和包的边界,直接访问别的应用程序的数据库。那么如何在应用程序间交换数据呢? 如果需要在进程间传递数据,可以使用ContentProvider来实现。二、ContentProvider的功能和意义为了在应用程序之

2016-08-05 14:46:48 3432

原创 FilenameFilter文件过滤

import java.io.File;import java.io.FilenameFilter;public class A { public static void main(String[] args) { File file = new File("E:/workspace/aaa/src"); File[] listFiles = file.l

2016-08-05 08:58:38 3968

原创 QQ聊天快捷键【很好用的哦】

1.提取消息  crtl+alt+z2.聊天窗口切换:crtl+数字(窗口的索引)3.关闭当前聊天 alt+c4.crtl+tab  依次切换聊天窗口5.win+tab  3D切换打开界面6.缩小QQ聊天窗口 alt+space+N 7.打开消息盒子 crtl+alt+s

2016-07-29 09:38:26 1274

转载 Android Dialog 的一些特性

1. Dialog 与 AlertDialog 的区别。  AlertDialog 是一种特殊形式的 Dialog。这个类中,我们可以添加一个,两个或者三个按钮,可以设置标题。所以,当我们想使用 AlertDialog 默认的按钮形式,用 AlertDialog 更加方便,而且有一个类 AlertDialog.Builder 很方便创建一个 AlertDialog。  2.

2016-07-21 16:39:14 448

转载 Android 动画之ScaleAnimation应用详解

android中提供了4中动画:   AlphaAnimation 透明度动画效果   ScaleAnimation 缩放动画效果   TranslateAnimation 位移动画效果   RotateAnimation 旋转动画效果     本节讲解ScaleAnimation 动画,   ScaleAnimation(float fromX, float toX,

2016-07-19 18:24:47 4743

原创 安卓自定义属性attrs

1.在res/values目录下定义attrs.xml<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="CustomView"> <attr name="select_text_size" format="dimension" /> <attr name="is

2016-07-19 16:28:47 926

转载 内存泄漏汇总

内存泄漏汇总1.基本介绍                                          ---来自caoweic1.1什么是内存泄露?Android进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地被引用到,导致无法被GC回收。无用的对象占据着内存空间,使得实际可使用内存变小,导致应用所需要的内存超过这个系统分配的内存限额,这就造成了内存溢

2016-07-19 13:36:18 1102 2

原创 安卓jni开发demo

1.在安卓工程(jniTest)下建立一个jni的目录2.在相关的类中(例如:MainActivity.java)加入loadLibrary static int hello = 0; static{ System.loadLibrary("hello-jni");//注意1 hello = hello(); } private nat

2016-07-19 11:36:51 368

原创 SVN新建外链和删除外链

SVN新建外链:打开工程所在的本地文件夹如下图在一个空白地方右键选择TortoisSVN下面的Properties3 这时候会进入属性界面,如下图所示4 如下图点击New选择Externals5这时候出现下图界面 6点击New,将进入下图创建External界面 7在Local Path中输入本地文件夹的名称,在URL中输入要链接到svn路径,点击OK,返回到上一级界面全部点击OK,回到文

2016-07-19 10:02:57 22099 1

原创 安卓-Handler引起的内存泄漏

摘要 内存泄露,听起来很屌的样子?看了这篇文章,你会发现其实这个概念很简单。Android程序经常出现的一个现象是:内存占用越来越大,到最后用户不得不强行关闭程序来释放内存。导致内存越来越大的原因很多,其中最主要的原因之一,就是Handler使用不当导致的内存泄露。 什么是内存泄露? Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为

2016-07-15 18:07:02 504 2

原创 avtivity中设置组合键进入相关的界面或者应用

avtivity中设置组合键进入相关的界面或者应用;假如有一个需求,按菜单键+上键进入管理员模式; private final int[] EVENT_KEYS = {KeyEvent.KEYCODE_MENU, KeyEvent.KEYCODE_DPAD_UP};//组合键 private ArrayList<Integer> inputKeysList = new ArrayLis

2016-07-15 13:57:11 438

原创 安卓时间相关的广播(Intent.ACTION_TIME_TICK)

1.Intent.ACTION_TIME_TICK 含义:系统每分钟会发出该广播2.用法: IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_TIME_TICK); filter.addAction(Intent.ACTION_TIME_CHANGED); register

2016-07-13 16:25:31 46514

转载 谈谈事件分发

引言:这部分会分三个模块来讲,先讲View对Touch的处理,再讲ViewGroup的事件分发,最后讲如何解决滑动冲突。我习惯通过在源码中添加注释来理解源码,以下是我提取出来几个重要方法,将不重要的部分删掉,并且添加了中文注释。一、先从View讲起如果一个View(比如Button)接收到Touch,那么该Touch事件首先会传入到它的dispatchTouchEven

2016-07-11 15:46:37 1222 1

原创 FileUtils

package com.ljf.test;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class FileUtil { /** * 移动指定文件或文件夹(包括所有文件和子文件夹)

2016-06-16 12:33:22 443

原创 安卓广播大全

1) 待机: 广播消息:android.intent.action.SCREEN_OFF (代码) 2) 唤醒: 广播消息:android.intent.action.SCREEN_ON (代码) 3) 关机: 广播消息:android.intent.action.ACTION_SHUTDOWN (XML或代码) 4) 网络状态变化: 广播消息:android.net.conn.CO

2016-06-15 17:45:58 625

原创 设计模式-观察者模式

/* * 观察者模式 * 定义对象间的一种一个(Subject)对多(Observer)的依赖关系,当一个对象的状态发送改变时,所以依赖于它的 * 对象都得到通知并被自动更新 * * 当然,MVC只是Observer模式的一个实例。Observer模式要解决的问题为: * 建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化

2016-06-03 15:35:47 392

转载 安卓设计模式之观察者模式

版权声明:本文为博主原创文章,未经博主允许不得转载。[java] view plain copy print?/*  * 观察者模式  *      定义对象间的一种一个(Subject)对多(Observer)的依赖关系,当一个对象的状态发送改变时,所以依赖于它的  * 对象都得到通知并被自动更新  *   * 当然,M

2016-06-03 14:45:59 463

转载 Java中的equals和hashCode方法详解

Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法,今天就来介绍一些这两个方法的作用。equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复。这里我们首先要明白一个问题:         

2016-06-01 15:22:46 1484

原创 设计模式-状态模式实现状态机

1.概述在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不从心了”。随着增加新的状态或者修改一个状体(if else(或switch case)语句的增多或者修改)可能会引起很大的修改,而程序的可读性,扩展性也会变

2016-05-31 13:34:51 12064 1

转载 java设计模式之——代理模式

设计模式Java 1,什么是代理模式?代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。 2,策略模式有什么好处?    在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 3,代理模式一般涉及到的角色有: 抽象角色:声明真实对象和代理对象的共同接口

2016-05-30 14:43:55 436

okhttp所需要的jar

okhttp所需要的jar

2016-04-20

汉语转拼音的jar包 pinyin4j

汉语转拼音的jar包 pinyin4j

2016-04-19

xutils3.0 jar

xutils3.0 jar所需要的 jar包

2016-04-08

EventBus使用demo,很详细

eventbus使用demo

2016-04-05

安卓通信方式之Messenger

安卓通信方式之Messenger

2016-03-16

空空如也

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

TA关注的人

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