sunwengang blog

because it's there

Android HWC2硬件合成

转载夕月风大佬博客: https://www.jianshu.com/p/824a9ddf68b9参考Android P AOSP源码添加修改部分内容参考源码: http://aosp.opersys.com/xref/android-10.0.0_r14/ 阅读全文

智能健身车

市面上关于智能健身车的款式还是太少了,以智能健身车品牌KM1930实景智能健身车来看,价钱也是偏贵。大部分都还只能算是普通的动感单车。但是提到顽鹿竞技、zwift,就有很多骑手会用骑行台、自己的自行车等设备在家模拟骑行,智能健身车目前的方向就是将这些一体化,而且更偏向智能、简约、便捷。 阅读全文

Android 两种实时获取FPS的方法

通过ADB命令实时获取FPS帧率有两种方式,一种是dump gfxinfo,一种是dump SF --latency。其他还可以通过三方APP GameBooster(Google PlayStore可以下载)打开实时FPS监控查看。如果是查看动画是否丢帧,可以通过视频工具QuickTime Player逐帧查看需要测试的动画的拍摄视频。一般每4帧会出现一个新的动画,录制视频查看这个过程是有动画虚影的。 阅读全文

Android SELinux权限笔记

在新增一个HIDL Service后,需要对其进行权限配置,不然通过adb shell ps -A|grep NAService会发现该service无法启动,也会通过抓取log发现一堆的avc: denied权限问题。关于SELinux可以推荐文档:https://www.pianshen.com/article/6549296922/, 非常详细,本文只是作为记录部分常用的笔记。 阅读全文

Android RC文件分析

Android中最熟知的RC文件就是init.rc了,而在Hal接口服务定义中也会创建.rc文件。init.rc的语法分为行为(Actions),、命令(Commands) 、服务(Services)、选项(Options)。.rc文件是资源文件,包括比如对话框、菜单、图标、字符串等资源信息。使用.rc资源文件的目的是为了对程序中用到的大量的资源进行统一的管理。 阅读全文

Android 触控事件分析

我们常见的触摸事件除了按下,弹起,移动之外还有很多,诸如长按,双击,Scroll,Fling等,他们是怎么判断的,还有这些长按,双击等事件的时间能否自由设置。可以在开发者选项中打开“显示点按操作反馈”和“指针位置”,同时可以打开inputflinger模块的log开关做一些调试,分析TP报点。 一般当我们需要处理触摸事件时有两种方式: 委托式 : 将事件委托给监听器来进行处理。即定义一个View.onTouchListener()子类的监听器,由其onTouch()方法来处理。 回调式 : 通过重写View类自己的onTouchEvent()方法来处理,在执行时会回调该方法,在其中执行自定义的代码。 阅读全文

Android Systrace如何抓取分析问题

UI流畅平滑的systraceSystrace获取:Android\Sdk\platform-tools\systrace systrace.py:python systrace.py --time=10 -o trace.html gfx input view webview wm am sm audio video hal res dalvik bionic power pm ss pdx sched freq idle load binder_driver binder_lock 默认Tag with: sched freq idle res ss gfx input view am 阅读全文

Android LCD背光驱动节电技术LABC/CABC

LCD背光驱动节电技术LABC/CABC 手机屏幕大部分是LCD(还有OLED屏幕),而手机的部分电量就是LCD背光消耗的。随着分辨率/尺寸的增大,LCD的背光驱动电路也越来越复杂。而高分辨率、高显示颜色、大尺寸的LCD,需要大的背光系统、大的TFT-LCD 面版、高运算速度的驱动IC,这些都造成了高的功率消耗。主要了解一下背光驱动节电技术CABC的概念和功能。参考博客 阅读全文

Android Binder实例

Binder通信是Android用的比较多的一种通信机制,它是一种client-server的通信结构。Binder通信具有以下特点: 用驱动程序来推进进程间的通信; 可以通过共享内存的方式来提供性能; 可以为进程请求分配每个进程的线程池; 针对系统中的对象引入了引用计数和跨进程的对象引用映射; 可以方便的进行进程同步调用。 阅读全文

Android @hide接口注释

@hide和{@hide}类或API是否开放是通过doc的注释{@hide}来控制的 比如android.media.Metadata这个类就是android没有公开的类 因为在frameworks\base\media\libmedia\Metadata.java文件中,定义Metadata类之前有/*{@hide}/doc注释,所以Metadata类被定义为了非公开类,即在android应用程序中无法直接访问的类 阅读全文

Android色彩空间(ColorSpace)

色彩空间Color Space广色域WCGWCG(Wide Color Gamut),是Adobe System开发的一种RGB色彩空间,使用纯光谱原色提供较大的色域。与Adove RGB和sRGB相比,能够存储更大范围的颜色值。相比之下,WCG包含CIELAB色彩空间可见颜色的77.6%,而Adobe RGB色彩空间仅覆盖52.1%,sRGB仅覆盖35.9%。 阅读全文

Java 单例模式

单例:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一个实例。比如我们在系统启动时,需要加载一些公共的配置信息,对整个应用程序的整个生命周期中都可见且唯一,这时需要设计成单例模式。如:spring容器,session工厂,缓存,数据库连接池等等。 阅读全文

Android Property

property的相关生成文件和设置 android通过SystemProperties的set和get方法来控制很多东西,一般上层添加一个控制开关可以使用这个方法,在系统里面存在很多个prop文件。它们分别是system/build.prop,system/etc/prop.default,vendor/build.prop,vendor/default.prop。下面分别来说下这几个文件的构成。 阅读全文

nReal搭建Samepl APK

概述nrsdk是nreal开发混合现实体验的平台。使用简单的开发过程和高级api,nrsdk提供了一组强大的mr特性,并使nreal眼镜能够了解真实世界。 nrsdk为开发者提供了五个核心特性: 空间计算使眼镜能够跟踪它们相对于世界的实时位置,并了解周围的环境,例如检测和跟踪平面和图像。 优化的渲染自动应用于应用程序并在后端运行,以最小化延迟并减少抖动,增强总体用户体验。 多模态交互为不同的用例提供了交互的直观选择。 提供了开发工具,以便您可以更好地开发和调试应用程序。 第三方集成是通过为第三方sdk提供数据来实现的,这允许您充分利用nreal light的硬件功能并构建功能强大的mr/ar应用程序。 阅读全文