- 博客(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
2408
原创 在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
548
原创 抽象类可以只实现接口的一部分方法
一个类若只实现了接口的部分方法,那这个类就一定是一个抽象类.反过来说,抽象类可以实现接口的部分方法或者一个方法也不实现.例如,public interface Human {public void getColor();public void talk();public void getSex();}public abstract class Abstrac
2016-05-05 09:42:12
8413
原创 Android中队列的实现
Android提供了队列的支持:http://developer.android.com/reference/java/util/Queue.htmlpublic interfaceQueueimplements Collectionjava.util.QueueKnown Indirect Subclasse
2016-05-04 14:56:00
6874
转载 关于静态内部类结合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
3895
原创 如何申请一个新的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
705
原创 在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
9202
原创 关于权限
1. 如果针对某个service定义权限,如果定义在组件级别,则是由SystemServer来检查权限,安全性相对高, 而且,此时如果其他程序来调用,不管是调用何种方法,如果没有权限,则都会触发异常。 而如果定义在方法级别,则是由该Service自己来检查权限。2. 如果把权限定义成SystemOrSinature,则对于UID为System的应用,可不用声明权限,便可以
2016-03-28 18:23:57
935
转载 PPT斜角标签怎么制作
插入->形状->基本形状->梯形,然后旋转45度,然后再调整梯形的斜边,搞成水平的就可以了吧。在尺寸那个标签页里面,有旋转角度设置
2016-03-26 16:40:54
820
原创 使用FileReader以及FileWrite操作文本文件的示例
java BufferedReader使用方法: public class BufferdReader extends Reader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read()
2016-03-22 16:08:45
686
转载 删除文件
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
351
转载 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
599
转载 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
492
原创 线程
new Thread(new Runnable(){ public void run(){ //TODO //在这里写要处理的操作,子线程中不能处理UI的操作(如:textView.setText("cc");),否则报错 }}).start();这样就开了新的线程了。线程可以结合Handler来使用,需要获取线程内部的消息,可以
2016-03-16 11:34:16
276
转载 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
3219
转载 关于java文件读写、字节流、字符流的一点心得
转载]转:关于java文件读写、字节流、字符流的一点心得一.转载网址:http://my.oschina.net/u/232879/blog/155440关于编码方式我们不讲,有兴趣自己去看,这里大概提一下。UTF-16采用等幅编码,即每个字符占2个字节。优点:简单;缺点:西文会膨胀到200%,冗余!而且字与字之间的疆界不好找,容易划分错误,没有考虑好前缀问题。这一点huffm
2016-03-07 11:50:30
9303
转载 从文件中读取Mac地址并按规则进行匹配性检查
获取利用android标准API获取mac地址,注意加权限, /** * 读取文件内容 */ private void readFileMac() { File usbFile = new File("mnt/sda/sda1/kvUpdateMac/usbUpdateMac.txt"); if
2016-03-07 11:20:12
2123
原创 按16进制打印显示一个字节数组的内容
以一个mac地址显示为例: byte[] arrayOfByte = null; ... StringBuffer localStringBuilder = null; if (arrayOfByte != null) { localStringBuilder = new StringBuffer();
2016-03-07 11:13:14
2897
原创 用service还是thread?
前段时间在思考一个问题时,还在纠结,一个后台任务,到底是用service实现还是一个thread实现?今天看到有个网友的一句话,顿悟,其实,当如果需要在前台APP(或activity)退出时,还需要继续运行该后台任务,例如接收消息等,那么,就需要考虑采用service来实现。而且,service的优先级很高,不容易退出。
2016-03-01 20:00:22
325
转载 Ubuntu Linux 查看、编辑、比较二进制文件
想根据gdb的反汇编来修改一个内核模块的汇编,没发现上面方便的工具,就直接用二进制编辑器来改了一下,还好是个简单的整型参数,该起来还比较简单。下面是用到的命令。 1. 这两个命令都可以以十六进制打印输出 二进制文件内容。可以指定偏移和打印格式等hexdump xxd2。 Vim 可以用来查看和编辑二进制文件vim -b ddddd.ko 加上-b
2016-02-26 10:46:13
874
原创 怎样可以sign GVS的build
如果要sign GVS的build,需要在提GVS时,加入以下的HACK的change:对于Foster,需要加入下面的change:http://git-master/r/#/c/814593对于Darcy的,还不知道。
2016-02-24 16:13:58
388
原创 使用xshell及xftp上传下载文件或目录
1. XShell中上传下载文件(一般比较小或少的文件)借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器下载一个文件,会弹出框选择下载到本地的哪个目录下sz filename 下载多个文件sz filename1 filename2下载dir目录下的所有文件,不包含dir下的文件夹sz dir/*
2016-02-16 15:39:18
15015
原创 如何实现只收听一次sticky的广播,读取电池电量的值
有种场景,只想收听一次广播,例如,在关机时,获取一下电量,若电量超过20%,才进行升级的处理。 【实现方式一】采用传统的收听广播的方式,势必要写个onReceive()方法,并在其中更新当前电量的值,但由于只是想关机时使用一次,其余时候收的广播都是浪费。所以,这样不好。 【实现方式二】不收听广播,还可以调用getBatteryLevel的接口,但由于Batt
2016-02-13 22:48:32
583
原创 灭屏状态下,如何实现按某个键可点亮屏幕
有两个地方需要修改。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
1969
原创 overlay机制
overlay是为了让不同产品有不同定制的一种技术,例如,在EP820中有扩展键盘,在EP681中没有扩展键盘,就可以使用overlay。 所谓overlay(覆盖),那么,首先应该有一个原始的配置,例如,以上面的需求为例,先在frameworks/base/core/res/res/values/目录下编辑config.xml文件,在其中添加一项,config_hasE
2016-02-13 22:16:25
3005
原创 两个跟锁屏解锁相关的window的flag
(1)WindowManager.LayoutParams.FLAG_DISSMISS_KEYGUARD 应用起来的时候,锁屏界面自动解锁(注:只有application才有效,view是无效的)(2)WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 应用起来的时候锁屏界面自动隐藏,但是不能自动解锁,若
2016-02-13 22:10:26
498
原创 bindService与startService
1. bindService既可以启动一个跨进程的service,也可以启动一个本进程内的service。 如果没有用aidl接口,则bindService不能bind另一个进程的service 如果使用了aidl接口,则在bindService()时,若service还没有启动,则系统会先启动service运行在的新进程。 当然,如果没用aidl,bindservi
2016-02-13 21:58:26
3790
原创 布局
针对线性布局而言:android:layout_gravity="center_vertical"意思是水平居中,垂直也居中,指的是本布局相对于父容器而言。相对布局时:实现一个控件在另一个下面,可这样设置:android:layout_below = "@id/上面控件的id"本控件在父容器中水平与垂直居中:android:layout_centerInPare
2016-02-13 19:05:33
288
原创 职责链模式
案例:1. 离职流程2. 秘书要求大家填登记个人资产信息的表格时,她只需交给第一个人即可,传着填android中:1. ViewRootImpl中的按键事件处理,很典型2. ordered广播
2016-02-13 18:42:29
239
原创 向Settings中添加一项
一般需经过如下步骤,当然,如果不考虑终端第一次启动时的默认值问题,1. 修改Settings.java,添加字段的定义该文件中有System/Global/Security三个表分别对应的三个内部类,故,首先确定要加到哪个表中,找到相应的位置后添加。2. 修改DatabaseHelper.java主要是跟数据库平滑升级以及添加默认值项有关,需改动以下三个地方:(1)修改
2016-02-13 18:31:53
632
原创 打印函数调用栈
该技巧在调试时很有用,可以看看在调用到某方法之前的调用栈,如下:例如,要知道是怎么一步步调用到goToSleep()的,可如下写:public void goToSleep(long eventTime, int reason) { new Exception("PMS:goToSleep").printStackTrace(); ...}其中,Exceptio
2016-02-13 18:12:08
391
原创 dumpsys
用来打印当前状态下,某service中的信息,前提是该service中实现了对应的dump函数用法:dumpsys 使用:先adb shell进入终端界面root@EP681V1:/# dumpsys power //打印电源管理的信息以下是一些常用的:dumpsys usbdumpsys activitydumpsys input //打印input系统的信息
2016-02-13 18:10:39
573
原创 关于属性
简单地说,Android属性分三种,可在/system/init/property_services.c中看到。(1)静态只读属性(以ro开头)这种属性,程序不可修改,编译时,值就定了,程序获取时,一般会先从cust仓(华为的做法)中获取,若获取不到,再到/system/build.prop文件中获取,若获取不到,最后,会到/default.prop文件中获取。由于
2016-02-13 17:51:33
811
原创 异常处理中的打印
在异常处理的打印时,遇到一个问题,try{ ...} catch(Exception e) {}时,会提示异常没有处理,于是,修改成try { ...} catch(Exception e) { Log.e(TAG, e.getMessage());}发现,在Log.e中报异常,显示println中无法把int型直接打印,原来,由于e.
2016-02-13 17:42:20
375
原创 获取资源的值
(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
318
原创 内部类
=======说明======1. 内部类可以是public的,也可以是private及protected,但外部类不能是private及protected。2. 一个java文件只允许有一个public的class,指的是并列的外部类而言的,但内部类可以是public的。3. 一个java文件对应一个.class文件,即使该java文件中还有一些非public的类,也在一个.cla
2016-02-13 17:03:39
689
原创 向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
1305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人