Android
Linux学习之路
这个作者很懒,什么都没留下…
展开
-
Android Binder 修炼之道(一)框架分析
在 Android 系统中含有大量的进程间通讯,Android 系统的开发人员为了进程间通讯使用起来更方便,在Linux内核里搞了一个 Binder 驱动,然后利用这个 Binder 驱动进行一些进程间的数据传输。在 Android 中对如何使用 Binder 驱动进行了封装,有C版本,也有C++和JAVA版本,将它们统称为 Binder 系统。有了这些封装之后,使用者只需要调用固定的接口,便可以原创 2017-07-28 09:45:22 · 1585 阅读 · 0 评论 -
Android Binder 修炼之道(四)Binder 系统C++ 发送数据过程以及Server注册服务处理数据的过程
本节分析发送数据过程以及Server注册服务处理数据的过程1#define LOG_TAG "CalculateService"2//#define LOG_NDEBUG 034#include 5#include 6#include 7#include 8#include 9#include 10#include 11#include 1213#include "ICalcula原创 2017-08-12 11:07:24 · 1969 阅读 · 0 评论 -
Android init.rc on property
在 init.rc 中,可以见到下面类似的用法,当一个属性值等于XX时,触发下面的事件,比如启动一个进程on property:sys.init_log_level=* loglevel ${sys.init_log_level}那么它是如何实现的,启动时触发一次?还是任何时刻只要属性值满足条件就触发? 实验验证结果:1、启动时,如果属性满足设定条件会触发一次原创 2017-07-26 23:04:32 · 13041 阅读 · 0 评论 -
Android Binder 修炼之道(三)Binder 系统C++实现 BpXXX代理类分析
在 Binder 系统中,分为 Client ServiceManager Server 三部分,C++是面向对象的语言,因此,这三者对应三个类的实例。ServiceManager 由 Android系统实现,我们只需要实现我们自己的 client 和 Server 类即可。 在 Binder 系统 C 的实现中,我们的 Client 和 Server 都实现了 sddone 和 r原创 2017-08-10 22:43:30 · 2022 阅读 · 0 评论 -
Android 5.1 截屏事件分析(Power + VolumeDown)组合键分析
为了实现组合键启动app的功能,参考了Android中截屏事件的处理流程,实现同时按下Power+音量增键启动电阻屏校准App的功能,下面是Android 代码中关于截屏按键部分的处理代码简要分析: 安卓5.0代码中,同时按住power键和音量-键一会可触发截屏事件PhoneWindowManager.java (base\policy\src\com\android\i原创 2017-07-24 17:22:00 · 4956 阅读 · 0 评论 -
Android Binder 修炼之道(二)Client Server 实例
前面一节,分析了 Binder 系统中的骨架,了解了 Client ServiceManager Server 三者之间的关系,重点针对 ServiceManager 分析了服务的注册过程以及查询过程。本节,将重点放在实现一个简单的 Server 和 Client ,加深对于代码的理解。首先是 Server:我们要向 ServiceManager 注册 1 个 calcul原创 2017-07-29 15:26:57 · 1230 阅读 · 1 评论 -
Android lights system
Android 中的灯光子系统采用的是硬件访问服务框架,JNI 层的文件是 com_android_server_lights_LightsService.cpp (frameworks\base\services\core\jni)Java 程序通过 JNI 调用 setLight_native 来控制背光、通知灯、电池灯灯。 Java: frameworks/base/原创 2017-06-13 21:17:48 · 1646 阅读 · 0 评论 -
Android 修改 init.rc
Android 根目录下可以看到 init.rc ,但是却无力修改,改了也白瞎,重启就恢复了,ramdisk....init.rc 是 rootfs 中的文件,Android 将 rootfs(initramfs) link 到 linux kernel image 中,生成正常启动的boot.img, recovery 模式的 recovery.img.Android 每原创 2017-06-13 19:48:37 · 9810 阅读 · 1 评论 -
Android led_class driver
Linux的led class驱动echo 255 > /sys/class/leds/led1/brightnesscat /sys/class/leds/led1/brightnesscat /sys/class/leds/led1/max_brightness闪烁echo timer > /sys/class/leds/led1/trigger原创 2017-06-11 21:13:10 · 1429 阅读 · 0 评论 -
Android 消息处理机制——线程通信
package com.example.hasee.androidmsg;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.os.Handler;import android.os.Looper原创 2017-06-11 16:45:26 · 520 阅读 · 0 评论 -
Android 硬件访问服务
怎么实现硬件访问服务1、JNI和HALcom_andorid_server_ledService.cpphal_led.c2、修改onload.cpp 调用 com_andorid_server_ledService.cpp 实现的函数3、修改systemServer.java new ledService & addService原创 2017-06-10 22:59:22 · 778 阅读 · 0 评论 -
Android JNI
什么是JNI,Java Native Interface ,Java 本地调用。Java 虽然具有跨平台的特性,但是Java和具体的平台之间的隔离是通过JNI层来实现的,Android 中 Java 通过 JNI 层调用 Linux 中的接口来实现对应的功能。JNI 层一般是由 C C++ 文件编写。Java 程序1、加载对应的JNI库,同行的做法是放在类的 sta原创 2017-06-10 18:45:22 · 5474 阅读 · 0 评论 -
Android backlight
frameworks\base\services\core\java\com\android\server\power\PowerManagerService.javapublic final class PowerManagerService extends SystemService implements Watchdog.Monitor { ...原创 2017-06-18 21:38:59 · 2062 阅读 · 0 评论