- 博客(32)
- 资源 (5)
- 收藏
- 关注
原创 ARM64下构建 UEFI 模块
本文主要阐述在arm64 平台下定义一个模块和共享库,并进行实现模块编译运行,同时实现一个共享库,以及在模块中调用这个共享库的方法
2022-10-29 20:43:01
1194
原创 linux 锁-- atomic & per_cpu
本文主要描述linux下 atomic和 per_cpu 的引入背景以及实现原理,并简单介绍了相关的使用方式。
2022-09-17 13:23:09
500
原创 Arm64 linux Virtual memory分析
本文主要描述虚拟地址的layout,描述方式,以及映射时序,可以作为虚拟内存管理框架分析使用。
2022-09-11 13:48:34
879
原创 ARM64 linux 异常处理 -- 异常向量
摘要:本文主要描述ARM64 linux 的异常架构和初始化,并选取了异常中的 irq 和 dataabort 作为典型的异常处理分析,本文可以作为SOC和驱动开发参考
2022-08-28 20:23:19
1380
原创 ARM64 linux 中断处理--架构
摘要:在 ARM64 嵌入式开发中,中断非常重要和常见的模块,研究和了解中断的架构和处理流程就非常重要。本文主要阐述中断的整体架构和初始化流程,可以作为SOC和驱动开发参考
2022-08-28 20:04:00
934
原创 android4.0 添加一个新的android 键值
这里添加新的键值,不是毫无凭据凭空创造的一个键值,而是根据kernel中检测到的按键值,然后转化为android所需要的数值:以添加一个linux键值为217,把它映射为android的键值Browser(这个键值之前不存在)为例介绍一下:1、android之前没有这个键值,需要定义/frameworks/base/core/java/android/view/KeyEvent.jav...
2012-10-26 15:42:33
5456
3
原创 Notification 播放声音
NotificationPlayer.java定义一个播放Notification声音的player,本质上仍然是一个MediaPlayer,这个是多线程编程的很好的例子public class NotificationPlayer implements OnCompletionListener {//发送播放和停止的cmdprivate static final int PLAY
2012-08-27 22:20:55
3336
原创 android4.0 frameworks屏蔽key、touch等事件,不派发到app的方法
我们在一开始初始化InputManager.java中的InputManager实例的时候,会有如下得操作:InputManager.java在InputManager的构造函数中://初始化Callbacks函数this.mCallbacks = new Callbacks();//然后在调用native方法的时候会将Callbacks函数放在C++中的InputDispat
2012-08-27 22:16:36
4092
原创 android 再论 Handler
一、ThreadLocal的分析:从字面上这个Threadlocal很容易让人引起误解,认真是一个本地 thread,实际上这是一个Thread的本地信息变量,也就是说用来存储线程中不安全变量的一个机制。分析如下:ThreadLocal类接口很简单,只有4个方法,我们先来了解一下: void set(Object value) 设置当前线程的线程局部变量的值。· public
2012-08-01 12:55:09
2198
转载 android ANR相关问题
一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无
2012-07-20 16:50:26
979
原创 android PopUp window的使用
Android的popupWindow类似一个不能动的widget,它显示在别的View之上。具体操作如下:主View:/layout/main.xmlxml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"andro
2012-07-14 23:40:39
2113
原创 android4.0 输入法框架分析
InputMethodManager.javaInputMethodManager.java中定义一个变量: IInputMethodSession mCurMethod;从表面上看,似乎是远程使用的。我们在后面有这样一个变量mClient :这个是传到InputMethodManagerService中回调使用的:主要在startInputInner或者onWindowFo
2012-07-14 23:38:04
2621
原创 android4.0 WindowManagerService的分析
对于Activity,在ActivityThread.java在handleLaunchActivity会调用performLaunchActivity,而performLaunchActivity则调用Activity中的attach函数,实现创建window(实际是PhoneWindow):Activity.javafinal void attach(Context context,
2012-07-14 23:33:45
3296
原创 android4.0 Power、home、menu等按键处理分析
一、Power、Home、Menu、back以及Vol+、Vol-的处理我们知道,在WindowManagerService创建的时候会声明一个InputManager的实例,这个InputManager又会通过NativeInit实现将mCallbacks、looper等添加到C++中实现创建InputDispatcher和InputReader。然后将这两个实例各加入到InputDispa
2012-07-09 16:01:29
2947
原创 Context的子类实现:ContextImpl的初始化
一、Context:Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific
2012-06-25 17:47:00
3907
原创 AudioService调整stream音量
//设置stream音量mRingVolumePlayer.setStreamVolume(index);在这里,streamVolume就是我们要设置的音量大小,接着就是调用AudioManager的方法进行设置。3.AudioManager.javapublic void setStreamVolume(int streamType, int index, int fl
2012-06-25 17:44:37
3106
原创 android4.0 statusbar加载icon
StatusBar分为两个部分:一是通常在手机界面最上端的未下拉的statusbar;二是下拉状态栏,也就是扩展状态栏。通过在实际应用中,我们可以发现,statusbar就是一个activity,那么,它的使用自然少不了和service之间的交互。PhoneStatusBar 通过IStatusBarService来访问StatusBarManagerService,而StatusBa
2012-06-20 15:10:45
2825
原创 android4.0 statusbar的启动
SystemServer.javapublic static final void init2() {//启动ServerThread Thread thr = new ServerThread(); thr.setName("android.server.ServerThread"); thr.start();}Serve
2012-06-20 15:08:48
1532
原创 android AsyncQueryHandler的分析
AsyncQueryHandler 它实际上就是利用多线程的异步处理功能实现的。public abstract class AsyncQueryHandler extends Handler {//这个class用来实现两个Handler之间的数据共享protected static final class WorkerArgs { public Uri uri;
2012-06-20 15:06:35
2139
原创 Hashmap的使用
HashMap是android中一种小型存储类,但是同HashTable相比,它是不安全的,非同步的,因此在使用时通常要用关键字synchronized。使用一个HashMap实例:HashMap sMap = new HashMap();sMap.put(K key, V value); //也就是将一个元素加入sMap存储器中之后,若是我们想获取对应key的值value,可以使
2012-03-12 14:26:44
2358
原创 usb状态相关处理
关于Usb的检测,相关联的和sd card一起研究。在状态栏如何进行显示Sd卡插入状态的Notification和Usb在Debugging时的Notification的?先来看Sd卡的Notification显示:在StatusBarPolicy.java的StatusBarPolicy类的构造函数中,有这样关于Sd卡的状态监听机制: // storage mStorageM
2012-03-12 14:16:04
3423
原创 android level-list的使用
在/drawable下建立一个level-list.xml,内容如下:在/layout/下的xml文件中添加一个ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content" />最后在.java中对该ImageView的click事件进行监听 mImag
2012-03-08 15:19:15
2311
原创 Handler的处理
Handler的官方解释大致意思如下:Handler是一种能够发送和处理与消息队列关联的Message和Runnable的一种对象。它隶属于调用Handler对象的线程,自它创建伊始,它就在当前线程发送消息到当前线程的消息队列,并且负责处理线程消息队列的消息。Handler的用法主要有两种:其一,发送消息,其二,在另外一个线程处理消息。对其一: post(Runnable), po
2012-02-16 12:43:50
1100
原创 android 锁屏界面处理
锁屏相关的文件在android对应package:com.android.internal.policy.impl。phoneWindowManager.java可以派发各种物理key,如Power,Home,Vol+和Vol-等等。那么,这个类是由谁启动的?在package下Policy.java中public PhoneWindowManager makeNewWindowMana
2012-02-16 12:33:18
10396
原创 android Notification分析
通常,在手机有未接电话,收到消息或者挂着退出主界面的QQ,在状态栏会有一个Notification,那么,这个notification如何产生的?通常做法:Intent intent = new Intent(); intent.setClass(this, Noti.class);//一般而言,对于需要点击Notification需要迁移到对应的View的需要下面这
2012-02-09 17:19:38
4278
原创 电池充电图标处理
Android在低电量时候充电图标不动,修改办法: xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
2012-02-09 17:17:43
2881
Handler的分析
2012-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人