自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 把对象生成为Parcel类型,以及如何利用Parcel来传递Enum类型数据

public class Settings implements Parcelable { private static final String TAG = "Settings"; private Command mCommand; private DataPattern mDataPattern; private int mPredefinedData;

2016-05-12 10:21:28 2350

原创 在Service的内部定义一个start()方法,简化Client端的调用

在Service中定义一个start()方法,外部通过调用该方法启动service,这样,Client不用关心Service的包名等细节,比较好当然,这个只能用来在进程内部使用,示例如下:public class XXXService extends Service {    public static void start(Context ctx) {        In

2016-05-05 16:47:27 513

原创 抽象类可以只实现接口的一部分方法

一个类若只实现了接口的部分方法,那这个类就一定是一个抽象类.反过来说,抽象类可以实现接口的部分方法或者一个方法也不实现.例如,public interface Human {public void getColor();public void talk();public void getSex();}public abstract class Abstrac

2016-05-05 09:42:12 8276

原创 Android中队列的实现

Android提供了队列的支持:http://developer.android.com/reference/java/util/Queue.htmlpublic interfaceQueueimplements Collectionjava.util.QueueKnown Indirect Subclasse

2016-05-04 14:56:00 6817

转载 关于静态内部类结合WeakReference避免内存泄露,同时可访问外部类的成员

public class BleService extends Service {      public static final String TAG = "BleService";      static final int MSG_REGISTER = 1;      static final int MSG_UNREGISTER = 2;      private fin

2016-05-04 10:57:06 3784

原创 如何申请一个新的repo

1. 开一个bug进行repo申请参考 BUG 200169828此处,假设要添加的repo为:tegra/apps/rpx-utils repo首先clone一个新的bug,例如Bug 200183938然后,填如下信息Synopsis: [New Repository Request] Create tegra/apps/rpx-utils repoReques

2016-04-14 11:20:54 664

原创 在Ubuntu中,使用minicom抓串口log

(1)先插上串口线,连上设备。(2)确定连的是哪个串口    ls /dev/tty*   如果是串口转USB,然后连到主机上,则为/dev/ttyUSB*如果是直接串口连到Host,则为/dev/ttyS*此处假设为ttyUSB0(3)在Ubuntu中,进入shell,然后sudo minicom -s  //进入串口配置界面修改Serial po

2016-03-30 15:09:45 8396

原创 关于权限

1. 如果针对某个service定义权限,如果定义在组件级别,则是由SystemServer来检查权限,安全性相对高,  而且,此时如果其他程序来调用,不管是调用何种方法,如果没有权限,则都会触发异常。   而如果定义在方法级别,则是由该Service自己来检查权限。2. 如果把权限定义成SystemOrSinature,则对于UID为System的应用,可不用声明权限,便可以

2016-03-28 18:23:57 893

原创 要在目录下写或者生成文件,该目录必须具有可执行权限

RT.

2016-03-28 11:33:07 916

转载 PPT斜角标签怎么制作

插入->形状->基本形状->梯形,然后旋转45度,然后再调整梯形的斜边,搞成水平的就可以了吧。在尺寸那个标签页里面,有旋转角度设置

2016-03-26 16:40:54 725

原创 使用FileReader以及FileWrite操作文本文件的示例

java BufferedReader使用方法:      public class BufferdReader extends Reader      从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。       Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read()

2016-03-22 16:08:45 650

转载 删除文件

public void deleteFile(File file) {if (file.exists()) { // 判断文件是否存在if (file.isFile()) { // 判断是否是文件file.delete(); // delete()方法 你应该知道 是删除的意思;} else if (file.isDirectory()) { // 否则如果它是一个目录File

2016-03-21 12:18:20 318

转载 SystemClock.sleep和Thread.sleep的区别

Thread.sleep()是java提供的函数。在调用该函数的过程中可能会发生InterruptedException异常。 SystemClock.sleep()是android提供的函数。在调用该函数的过程中不会发生InterruptedException异常,中断事件将要被延迟直到下一个中断事件。SystemClock.sleep(millis) is a utility func

2016-03-18 09:43:21 548

转载 Android:adb 启动activity、service,发送broadcast

Android:adb 启动activity、service,发送broadcast标签: androidbroadcastshellserviceactivity2014-07-28 10:22 5005人阅读 评论(0)收藏举报分类: android(2) 一、adb启动activity:$ adb shell

2016-03-18 09:40:20 461

原创 线程

new Thread(new Runnable(){    public void run(){        //TODO        //在这里写要处理的操作,子线程中不能处理UI的操作(如:textView.setText("cc");),否则报错    }}).start();这样就开了新的线程了。线程可以结合Handler来使用,需要获取线程内部的消息,可以

2016-03-16 11:34:16 255

转载 OutputStreamWriter, PrintWriter, BufferedWriter, FileWrite, PrintStream

先看一个示例,当然实际不会这么用,这里只是说明一下三者的区别。import java.io.*; public class WriterDemo {    public static void main(String[] args)     {        OutputStreamWriter osw=null;

2016-03-07 13:33:50 3122

转载 关于java文件读写、字节流、字符流的一点心得

转载]转:关于java文件读写、字节流、字符流的一点心得一.转载网址:http://my.oschina.net/u/232879/blog/155440关于编码方式我们不讲,有兴趣自己去看,这里大概提一下。UTF-16采用等幅编码,即每个字符占2个字节。优点:简单;缺点:西文会膨胀到200%,冗余!而且字与字之间的疆界不好找,容易划分错误,没有考虑好前缀问题。这一点huffm

2016-03-07 11:50:30 9238

转载 从文件中读取Mac地址并按规则进行匹配性检查

获取利用android标准API获取mac地址,注意加权限, /**       * 读取文件内容       */      private void readFileMac() {          File usbFile = new File("mnt/sda/sda1/kvUpdateMac/usbUpdateMac.txt");          if 

2016-03-07 11:20:12 2066

原创 按16进制打印显示一个字节数组的内容

以一个mac地址显示为例:      byte[] arrayOfByte = null;       ...      StringBuffer localStringBuilder = null;          if (arrayOfByte != null) {              localStringBuilder = new StringBuffer();

2016-03-07 11:13:14 2786

原创 用service还是thread?

前段时间在思考一个问题时,还在纠结,一个后台任务,到底是用service实现还是一个thread实现?今天看到有个网友的一句话,顿悟,其实,当如果需要在前台APP(或activity)退出时,还需要继续运行该后台任务,例如接收消息等,那么,就需要考虑采用service来实现。而且,service的优先级很高,不容易退出。

2016-03-01 20:00:22 302

转载 Ubuntu Linux 查看、编辑、比较二进制文件

想根据gdb的反汇编来修改一个内核模块的汇编,没发现上面方便的工具,就直接用二进制编辑器来改了一下,还好是个简单的整型参数,该起来还比较简单。下面是用到的命令。 1.  这两个命令都可以以十六进制打印输出 二进制文件内容。可以指定偏移和打印格式等hexdump  xxd2。   Vim 可以用来查看和编辑二进制文件vim -b ddddd.ko   加上-b

2016-02-26 10:46:13 806

原创 怎样可以sign GVS的build

如果要sign GVS的build,需要在提GVS时,加入以下的HACK的change:对于Foster,需要加入下面的change:http://git-master/r/#/c/814593对于Darcy的,还不知道。

2016-02-24 16:13:58 350

原创 使用xshell及xftp上传下载文件或目录

1. XShell中上传下载文件(一般比较小或少的文件)借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器下载一个文件,会弹出框选择下载到本地的哪个目录下sz filename 下载多个文件sz filename1 filename2下载dir目录下的所有文件,不包含dir下的文件夹sz dir/*

2016-02-16 15:39:18 14797

原创 如何实现只收听一次sticky的广播,读取电池电量的值

有种场景,只想收听一次广播,例如,在关机时,获取一下电量,若电量超过20%,才进行升级的处理。        【实现方式一】采用传统的收听广播的方式,势必要写个onReceive()方法,并在其中更新当前电量的值,但由于只是想关机时使用一次,其余时候收的广播都是浪费。所以,这样不好。        【实现方式二】不收听广播,还可以调用getBatteryLevel的接口,但由于Batt

2016-02-13 22:48:32 529

原创 灭屏状态下,如何实现按某个键可点亮屏幕

有两个地方需要修改。1. xxx.kl文件   在EP820终端中,/system/usr/keylayout/目录下,有三个文件:   hi6421_on.kl :对应电源键的扫描码,字符以及是否唤醒   hisi_gpio_key_15.kl为机身按键的   keypad.kl 为扩展键盘的   只有以上三个文件都没有定义,才会去generic.kl文件中找。  所

2016-02-13 22:46:56 1892

原创 overlay机制

overlay是为了让不同产品有不同定制的一种技术,例如,在EP820中有扩展键盘,在EP681中没有扩展键盘,就可以使用overlay。        所谓overlay(覆盖),那么,首先应该有一个原始的配置,例如,以上面的需求为例,先在frameworks/base/core/res/res/values/目录下编辑config.xml文件,在其中添加一项,config_hasE

2016-02-13 22:16:25 2864

原创 两个跟锁屏解锁相关的window的flag

(1)WindowManager.LayoutParams.FLAG_DISSMISS_KEYGUARD          应用起来的时候,锁屏界面自动解锁(注:只有application才有效,view是无效的)(2)WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED          应用起来的时候锁屏界面自动隐藏,但是不能自动解锁,若

2016-02-13 22:10:26 458

原创 bindService与startService

1. bindService既可以启动一个跨进程的service,也可以启动一个本进程内的service。    如果没有用aidl接口,则bindService不能bind另一个进程的service    如果使用了aidl接口,则在bindService()时,若service还没有启动,则系统会先启动service运行在的新进程。    当然,如果没用aidl,bindservi

2016-02-13 21:58:26 3701 1

原创 布局

针对线性布局而言:android:layout_gravity="center_vertical"意思是水平居中,垂直也居中,指的是本布局相对于父容器而言。相对布局时:实现一个控件在另一个下面,可这样设置:android:layout_below = "@id/上面控件的id"本控件在父容器中水平与垂直居中:android:layout_centerInPare

2016-02-13 19:05:33 253

原创 职责链模式

案例:1. 离职流程2. 秘书要求大家填登记个人资产信息的表格时,她只需交给第一个人即可,传着填android中:1. ViewRootImpl中的按键事件处理,很典型2. ordered广播

2016-02-13 18:42:29 220

原创 状态模式

listview的动态刷新的处理是状态模式的应用实例

2016-02-13 18:38:16 202

原创 装饰模式

ContextWrapper以及DecorView是装饰模式的应用实例,待补充。

2016-02-13 18:36:51 232

原创 向Settings中添加一项

一般需经过如下步骤,当然,如果不考虑终端第一次启动时的默认值问题,1. 修改Settings.java,添加字段的定义该文件中有System/Global/Security三个表分别对应的三个内部类,故,首先确定要加到哪个表中,找到相应的位置后添加。2. 修改DatabaseHelper.java主要是跟数据库平滑升级以及添加默认值项有关,需改动以下三个地方:(1)修改

2016-02-13 18:31:53 567

原创 打印函数调用栈

该技巧在调试时很有用,可以看看在调用到某方法之前的调用栈,如下:例如,要知道是怎么一步步调用到goToSleep()的,可如下写:public void goToSleep(long eventTime, int reason) {    new Exception("PMS:goToSleep").printStackTrace();    ...}其中,Exceptio

2016-02-13 18:12:08 353

原创 dumpsys

用来打印当前状态下,某service中的信息,前提是该service中实现了对应的dump函数用法:dumpsys 使用:先adb shell进入终端界面root@EP681V1:/# dumpsys power   //打印电源管理的信息以下是一些常用的:dumpsys usbdumpsys activitydumpsys input //打印input系统的信息

2016-02-13 18:10:39 524

原创 关于属性

简单地说,Android属性分三种,可在/system/init/property_services.c中看到。(1)静态只读属性(以ro开头)这种属性,程序不可修改,编译时,值就定了,程序获取时,一般会先从cust仓(华为的做法)中获取,若获取不到,再到/system/build.prop文件中获取,若获取不到,最后,会到/default.prop文件中获取。由于

2016-02-13 17:51:33 620

原创 异常处理中的打印

在异常处理的打印时,遇到一个问题,try{    ...} catch(Exception e) {}时,会提示异常没有处理,于是,修改成try {    ...} catch(Exception e) {    Log.e(TAG, e.getMessage());}发现,在Log.e中报异常,显示println中无法把int型直接打印,原来,由于e.

2016-02-13 17:42:20 332

原创 获取资源的值

(1)    从values.xml中获取一个资源字符串的值,如:   mNetworkName = getContext().getString(R.String.PubWidgetName);(2)从confg.xml(frameworks/base/core/res/res/values/)中获取一个字符串数组,    并保存到一个ArrayList中:    R

2016-02-13 17:31:22 287

原创 内部类

=======说明======1. 内部类可以是public的,也可以是private及protected,但外部类不能是private及protected。2. 一个java文件只允许有一个public的class,指的是并列的外部类而言的,但内部类可以是public的。3.  一个java文件对应一个.class文件,即使该java文件中还有一些非public的类,也在一个.cla

2016-02-13 17:03:39 579

原创 向config.xml中添加一个配置项

1. 在config.xml中添加一项(路径:frameworks/base/core/res/res/values/)如: true2. 在 frameworks/base/core/res/res/values/symbols.xml中,添加:3. 在frameworks/base/core/res/res/values/android.xml中,添加一带有id的项,但此i

2016-02-13 16:58:20 1250 1

空空如也

空空如也

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

TA关注的人

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