自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lsdmx2016的总结

技术归零,时常自省,不断学习,拒绝安逸

  • 博客(89)
  • 资源 (3)
  • 收藏
  • 关注

原创 与aosp相关的hosts 的更新

hosts对应的ip经常无法使用,现在更新一下

2014-11-17 13:29:56 1187

原创 android5.0.0_r2 代码下载

根据android.source.com给出的同步代码的方法  repo init -u https://android.googlesource.com/platform/manifest -b android-5.0.0_r2  repo sync   这种方法经过我的测试是成功的,有可能提示 找不到 android-5.0.0_r2,多重复几次 应该可以成功,因为在 https:

2014-11-05 14:04:37 9703 6

原创 dd命令刷recovery

1. 将reocovery.img push 到 系统目录 如 /data adb remount adb push reocovery.img /data2.dd 执行adb shell dd if=data/recovery.img of=dev/recovery

2014-11-04 16:28:42 5250

原创 android:priority

android:priority 这个属性主要用在 acitvity 或者 broadcastreceiver 的 标签中,当有多个activity 或者 broadcastreciver 满足 intent-filter 的时候,利用这个属性可以确定broadcastreceiver(顺序广播) 接受广播的顺序,或者 优先    比如开机向导应用的intent-filter 和 l

2014-11-04 16:22:23 1129

原创 android4.4中jni的native的方法无法找到的解决方案

1.禁用代码混淆功能LOCAL_PROGUARD_ENABLED:= disabled2.修改混淆规则,对于native

2014-11-04 16:19:07 2439

原创 Android4.4平台下MediaProvider无法向外置SD卡中的文件写数据

Android4.4平台限制应用对外置SD卡的读写权限。MediaProvider通过 checkAccess方法 限制对外置SD卡的读写。      private void checkAccess(Uri uri, File file, int modeBits) throws FileNotFoundException {        final boolean isWrite =

2014-11-04 16:15:48 3194 2

原创 local 引用没有及时回收

问题日志如下:E/dalvikvm(  737): JNI ERROR (app bug): local reference table overflow (max=512)W/dalvikvm(  737): JNI local reference table (0x64a94750) dump:W/dalvikvm(  737):   Last 10 entries (of 512

2014-11-04 15:49:42 1934

原创 git clean

git clean -df   //移除没有添加大

2014-11-04 15:37:39 888

原创 ART模式下dex2oat出错导致系统无法正常启动

Android4.4开始android的运行时出现了ART选项,以前只有Dalvik,也就是说android系统的虚拟机可以选择 Dalvik 也可以选择 ART,选择虚拟机的设置在 Developer options/Select Runtime 中完成  设置虚拟机的选项本质上只是改变一个系统属性的值,这个属性是 persist.sys.dalvik.vm.lib  app_proce

2014-10-14 16:08:55 3824

原创 对代理模式的认识(1)

代理模式主要用于通过提供代理对象来控制对实际对象的访问。比如在C/S场景中应用代理模式的时候,客户端的请求首先会发送给服务端代理,服务端代理对象会对客户端的请求进行简单的过滤,对于无效的请求就会直接返回,而不用发送给服务端,而对于有效的请求则会发送给服务端进行处理。代理模式适用于控制访问那些不想暴露接口和数据给外部的业务对象 或者不方便被其他对象直接引用的业务对象,这些业务对象只需要通过代理对

2014-02-28 09:41:50 905

原创 对foxmail 导出的csv文件转码

iconv -f gb2312 -t utf8 文件名.csv

2014-02-13 13:52:54 1004

原创 Android 4.X 读取SIM卡短信和联系人的相关类

1.IccSmsInterfaceManager     这个类的主要作用有两个   通过 SMSDispatcher,发送短信数据   更新和查询SIM卡的短信数据     IccSmsInterfaceManager 是一个Binder 服务类,Binder接口是 ISms.   IccSmsInterfaceManager 被创造时 Binder服务会被注册。   I

2013-12-26 15:46:20 2678

原创 Android4.1 JNI 中打印的LOG 无法在 logcat 中输出

Android JNI (C++ )代码中的 log 输出 是由 system/core/include/cutils/log.h 控制的,里面定义了 ALOGD,ALOGI,ALOGE,ALOGW等 log 输出方式。   Log 能否在logcat 中输出 关键在于两个地方    宏定义 LOG_PRI#ifndef LOG_PRI#define LOG_PRI(priorit

2013-12-25 15:26:34 7849

原创 Android系统源代码中的观察者模式

观察者模式   观察者模式中存在两个主要对象,观察者对象和被观察者对象。   在软件设计的过程中,总是存在这样的需求,当对象A的数据A发生变化时,我们需要动态的更新对象B的数据,观察者模式因为这个需求而产生。   简单点说就是观察者对象监听被观察者对象,在被观察者对象中检查数据是否发生变化,如果数据发生变化就通知它的所有的观察者。在实际应用中我们以UI 和后台数据为例。   当后台

2013-12-24 17:40:44 1336

原创 Android4.X 的SIM卡信息的初始化过程

Phone 对象初始化的过程中,会加载SIM卡的部分数据信息,这些信息会保存在IccRecords 和 AdnRecordCache 中。SIM卡的数据信息的初始化过程主要分为如下几个步骤   RIL 和 UiccController 建立监听关系 ,SIM卡状态发生变化时,UiccController 第一个去处理。     Phone 应用初始化 Phone 对象时会建立一个 RIL

2013-12-24 17:00:30 9553

原创 Android4.X 应用层读取SIM卡联系人的过程

SIM卡里可以存储部分联系人数据 ,USIM卡也可以存储部分联系人数据,只不过USIM卡存储的联系人的数量更多,以及支持更多的联系人数据字段。  在Android 的应用层 是通过IccProvider 来读取SIM卡里的联系人的,主要有三个步骤  1.IccProvider 根据 EF_ID ,调用 IccPhoneBookInterfaceManager 的getAdnRecordsI

2013-12-24 14:56:13 5917 1

原创 添加ActionBar的支持

ActionBar 是Android3.0以后出现的特性。为了让低版本的Android支持ActionBar,google推出了相关的support包,现在通过support包,ActionBar现在可以支持Android2.1以及以上版本,support包的名称是android-support-v7-appcompat.jar这个包需要结合android-support-v4.jar使用。a

2013-12-19 14:57:24 2459

原创 对SplitAction Bar 的认识

根据developer.android.com对SplitActionBar的描述:在屏幕宽度比较窄的情况下,将ActionBar的items放置到屏幕底部,如下图效果:实现这种UI效果的方法如下:1.如果API Level >=14,是在Activity的配置文件中设置android:uiOptions="splitActionBarWhenNarrow"

2013-12-19 14:56:26 5870

原创 ActionBar的视图结构

ActionBar是一个特殊的视图,它能为Activity提供统一的导航以及视图切换体验。一般情况下它位于Activity内容视图的上方,主要由以下区域组成,如图所示App ICON区域,上图所示的图标客厅区域这个区域主要用于显示应用程序的icon,或者自己设计的logo,或者自己定义的任何图片以及应用程序的名称(title)或者任何自定义的标题。Vie

2013-12-19 14:52:47 1311

原创 ActionBar的ActionView

ActionView,它能在ActionBar直接显示一个具体的视图,如搜索框,而不只是一个Button.具体效果如下一般情况下,用户需要在ActionBar上点击一个Button然后再显示搜索的页面或者对话框。现在我们需要在页面显示的时候就直接显示这个搜索框,这样的用户体验更好。具体实现如下:定制menu配置文件xmlns:tools="h

2013-12-19 14:49:42 5619

原创 ActionBar兼容性的实现方式的要点

1.对于APILevel 的版本兼容ActionBar Activity 继承ActionBarActivity 获取ActionBar的方法:getSupportActionBar() 导入Fragment的版本:android.support.v4.app.Fragment 获取FragmentManager的方法:getSupportFragmentMan

2013-12-19 14:48:25 2128 1

原创 ActionBar的Tab模式

ActionBar的Tab模式显示的效果如下图所示         ActionBar进入Tab模式的方法actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);ActionBar的Tab模式结合ViewPager,fragment就可以达到以上效果具体实现思路如下 ActionBar的

2013-12-19 14:46:22 6168 1

原创 ActionBar 的 Navigation UP 功能

ActionBar 支持 Navigation Up的功能,Navigation UP 是指返回 逻辑上的上一页。它和Back键的返回的含义是不一样的。Back键是根据用户浏览页面的顺序进行返回的,返回的是上一个浏览的页面的。而Navigation Up 所说的逻辑上的上一页,是根据软件的页面层次来决定的,是逻辑上的上一页。比如页面1显示 列表,页面2 显示 列表项的详情,页面3 显示的是列表项详

2013-12-19 14:43:02 2149

原创 Android-stuido 常用快捷键

1.ctrl+Alt+space   代码提示(Eclipse中是 Alt+/)2.Alt+Enter        代码import (Eclipse 中是  Ctrl+Alt+O)3.ctrl+Alt+L       代码格式化,这个快捷键和Ubuntu 的锁屏快捷键相同,可以更改ubuntu 的这个快捷键。

2013-12-19 14:34:20 900

原创 Android4.1中 HAL的段错误

1. 在 Android4.1 中,执行到 hardware.c 中的 load 方法时static int load(const char *id,        const char *path,        const struct hw_module_t **pHmi){    int status;    void *handle;    struct hw

2013-12-19 14:31:10 2159

原创 Android中 Mutex的理解

Android libutils 中定义了 Mutext 和 Mutex::AutoLock 对象来进行临界资源的加锁和解锁。Mutex::AutoLock 在构造时进行加锁,析构时进行解锁。class Autolock {    public:        inline Autolock(Mutex& mutex) : mLock(mutex)  { mLock.lock(); }

2013-12-19 14:29:45 3805

原创 ffmpeg 移植到Android(1)

今天主要介绍利用NDK 在应用程序中编译ffmpeg,生成一个动态库libffmpeg。1.软硬件环境操作系统:ubuntu 12.04 64bit开发环境:Eclipse:Eclipse Indigo Service Release 2CDT:CDT 8.0.2ADT:ADT 21.1.0NDK:android-ndk-r8e-linux-x86_642.下载ff

2013-12-19 14:25:32 9276

原创 Android消息队列处理消息

Looper中的MessageQueue中持有一个mMessages的对象,用于保存,它所获得的消息对象。Looper通过,它的next方法进行消息循环,如果发现了消息,就将mMessages 交给对应的target 处理  Message next() {        int pendingIdleHandlerCount = -1; // -1 only during first i

2013-12-19 14:08:37 1832

原创 Android应用程序消息循环

Android应用程序的消息处理框架,是通过 Looper,Handler,MessageQueue,这三个类实现的,Looper 是一个消息循环,它维护着一个MessageQueue,Looper 是和某个线程相关的,Handler 也是和线程相关的,一个Looper 对应着一个Handler,Handler 就是用来发送和处理与它相关的线程的消息队列的消息的。   Android应用程序在

2013-12-19 13:54:33 3223

原创 对Android4.X窗口的认识

窗口,可以理解为一个可以提供给用户交互的用户界面,在这个界面里,用户可以通过物理按键事件,触摸事件等输入事件和应用程序或者系统进行交互。总体来说,窗口就是一个可交互的ViewGroup,Android系统在某一时刻只会有且只有一个窗口获得焦点并且处于活跃状态,可以接收各种事件。窗口参数包括大小,类型等。在Android系统里,窗口主要有如下几种窗口应用窗口(Wind

2013-12-19 13:50:57 968

原创 Java 对象的锁

Java 中每一个对象都有一个锁,当线程访问synchronized 的方法和代码块的时候,会获得这个锁,也可以理解为为这个对象加锁,这个锁在同一时间有且只能被一个线程访问。如果一个线程访问对象锁的时候,锁正在被其他线程访问,那么这个线程就需要等待占用锁的那个线程释放对象锁,陷入阻塞状态。当执行完synchronized方法或者代码块的时候,线程就会释放对象锁。   当线程通过 synchro

2013-12-19 13:49:20 3461

原创 利用DDMS 查看 分析线程阻塞

在实际应用中有可能出现如下场景,在Activity 中,新建后台线程(Thread,或者 AsyncTask) 处理网络请求或者其他耗时的工作,但是 主界面出现卡顿现象,ANR 等。有可能是主线程被阻塞。我们可以利用DDMS 来分析主线程和其他工作线程是否出现阻塞,并找出 阻塞的原因。   利用DDMS 分析线程主要有如下几个步骤:   将手机连接到 电脑,打开Eclipse 的DDMS

2013-12-19 13:44:15 5200 1

原创 Binder 服务调用 和主线程的关系(1)

1.Binder服务的调用对象和Binder服务处于同一进程      在这种情况下,Binder 服务的调用对象调用服务方法的代码所在线程和 Binder服务执行所调用的方法的代码所在的线程,属于同一个线程。这个可以通过打印log 去验证。比如 应用程序A,的某个Activity在 AsyncTask 中访问 Binder 服务,这个Binder服务在应用程序A中的android.app.S

2013-12-19 13:41:20 4310

原创 将Android系统中的out目录从源代码目录中分离

Android系统编译成功后的代码默认放在源代码目录下的out目录中,我们需要将out目录分离出来,可以在环境变量中添加 OUT_DIR_COMMON_BASE="/androidsource/out",如果你的工作目录中存在 /work/android_branch1,/work/android_branch2,这样的几个分支源码,那么 他们编译完成后将会在 /androidsource/out

2013-08-12 17:10:48 3057

原创 对IccCardStatus 的认识

IccCardStatus 用于描述手机所插入的手机卡的信息,包括卡的状态,PIN码锁定的状态,所包含的应用的状态信息。RIL.java 中获取得到SIM卡的信息后,将信息封装成IccCardStatus返回给UiccController.    具体的成员变量如下    CardState ,描述SIM卡的状态,    public enum CardState {

2013-06-09 16:32:10 6042

原创 对IccCardProxy 的认识

IccCardProxy 主要是对IccCard的实现,它主要有如下几个功能。   通过 UiccController,获取UiccCard,UiccCardApplication,IccRecords 的最新状态。    1.通过 UiccController监听SIM卡的变化信息       mUiccController = UiccController.getInstance

2013-06-09 16:30:22 5392

原创 对UiccCardApplication的认识

UiccCardApplication,描述智能卡应用的信息,在UiccCard 中创建,主要包含如下内容  对应的卡的信息,如APPState,AppType  读取卡信息的对象,如IccFileHandler,IccRecrods  对卡状态的数据监听器,如 mReadyRegistrants UiccCardApplciation只会创建一次,一旦卡的状态发生变化,UiccC

2013-06-09 16:29:36 2906

原创 对UiccCard的认识

UiccCard 在UiccController 中创建,对应实际的智能卡,当添加卡和移除卡的时候,在这个类中都会有所体现,它持有卡的状态的监听器,它主要有三个功能。   维护卡的状态和PIN码锁定状态   创建卡的UiccCardApplication   创建 CatService,这个对象和 Stk有关。 当SIM卡的状态发生变化时,update的方法会被调用。

2013-06-09 16:26:05 2962 1

原创 对UiccController 的认识

UiccController 是对SIM卡管理的控制器,它通过 UiccCard 来更新SIM卡的信息。  1.UiccController 注册了两个监听器,来监听RIL的消息。分别监听 UNSOL_RESPONSE_RADIO_STATE_CHANGED 和 RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED,当radio 和 sim卡状态发生变化时,它会第一时间得

2013-06-09 16:22:38 5941

原创 静态链接库和动态链接库的区别

库文件本质上都是一系列的目标文件的集合,是共享代码的方式,可以称之为共享代码库。根据目标文件的链接方式,可以分为动态链接库和静态链接库动态链接库,在生成可执行文件或者其他动态链接库的过程中,采用动态链接方式的库,动态链接库的文件的内容并没有被包含在可执行文件或者其他动态链接库中,链接程序记录文件的调用信息,在程序执行的时候才会将动态链接库的内容调入可执行文件的代码中。静态链接库,在生成的可

2013-05-20 16:05:51 1013

AsyncChannel 原理

AsyncChannel 主要用于两个不同的Handler 之间的通信。

2012-12-17

rild Socket 初始化

rild socket 主用用于接收从RIL.java 中传递过来的数据命令,同时rild的反馈信息也通过该socket返回给RIL.java

2012-12-17

汇编语言编程环境 MASM611的设置

MASM611的安装界面是一个蓝屏的界面,和其他的软件安装界面不同。

2009-03-06

空空如也

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

TA关注的人

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