android
文章平均质量分 78
信田君9527
keep reading the fu*king code and learning
展开
-
V4L2 操作流程和接口说明
背景: V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。一般操作流程(视频设备):1.打开设备文件。int fd=open("/dev/video0",O_RDWR);2. 取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。VIDIOC_QUERYCAP,struct v4l2_capability(可选)3. 选择视频输入,一个视频设备可以有多个视频输入。原创 2021-08-03 10:35:35 · 1803 阅读 · 0 评论 -
ADB:通过 Wi-Fi 连接到Android设备的两种方法
adb 的工作原理当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接原创 2021-07-23 16:58:22 · 6073 阅读 · 1 评论 -
Android APP Dev-ViewBinding 视图绑定 (二)
本文是结合学习第一行代码3 中Fragment章节的时候,我在练习FragmentBestPractise project时,相比于书里的code, 我用了viewbinding代替了kotlin extensions,也由此引入一些问题,相关内容的一些总结:1.Configurations for activity_main.xml must agree on the root element's ID这个问题发生在写了根据不同适配的layout xml。这里注意,两个布局的根元素的 id 必须.原创 2021-07-20 14:16:47 · 1823 阅读 · 5 评论 -
Android APP Dev-ConstraintLayout 约束布局
https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayouthttps://developer.android.com/training/constraint-layouthttps://blog.csdn.net/guolin_blog/article/details/53122387https://www.jianshu.com/p/17ec9bd6ca8ahttps://w原创 2021-07-13 19:44:31 · 126 阅读 · 2 评论 -
Android APP Dev-ViewBinding 视图绑定
https://developer.android.com/topic/libraries/view-binding#kotlinhttps://developer.android.com/topic/libraries/view-binding/migrationhttps://blog.csdn.net/guolin_blog/article/details/113089706Google明确地告诉我们,kotlin-android-extensions插件已被废弃,现在推荐使用ViewBi翻译 2021-07-13 14:22:43 · 213 阅读 · 0 评论 -
Android HIDL
HIDL的全称是HAL interface definition language(硬件抽象层接口定义语言),在此之前Android 有AIDL,架构在Android binder 之上,用来定义Android 基于Binder通信的Client 与Service之间的接口。HIDL也是类似的作用,只不过定义的是Android Framework与Android HAL实现之间的接口,用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件包中原创 2021-07-07 10:10:42 · 1738 阅读 · 0 评论 -
Android AIDL
Proxy/Stub结构打个比方,你到自动取款机上去取款;你就是客户,取款机就是你的代理;你不会在乎钱具体放在那里,你只想看到足够或更多的钱从出口出来(这就是com的透明性)。你同银行之间的操作完全是取款机代理实现。 你的取款请求通过取款机,传到另一头,银行的服务器,他也没有必要知道你在哪儿取钱,他所关心的是你的身份,和你取款多少。当他确认你的权限,就进行相应的操作,返回操作结果给取款机,取款机根据服务器返回结果,从保险柜里取出相应数量的钱给你。你取出卡后,操作完成。 取款机不是直接同服务器连接的,他们原创 2021-07-06 10:55:31 · 207 阅读 · 0 评论 -
Android Service 学习资料
关于Android service, 网上有很多不错的帖子解析,搜集汇总一下, 方便时不时看看学习。Google Android Guide:https://developer.android.com/guide/components/servicesGoogle Android Reference:https://developer.android.com/reference/android/app/ServiceAndroid Service的使用介绍:https://www.jianshu原创 2021-07-02 14:17:51 · 121 阅读 · 0 评论 -
Android Parcel 学习
在Android中,通常使用序列化时,谷歌官方都推荐我们使用Parcelable来实现,因为效率比jdk提供的Serializable要高很多(大约10倍)https://developer.android.com/reference/android/os/ParcelParcelContainer for a message (data and object references) that can be sent through an IBinder. A Parcel can contai原创 2021-07-02 11:05:53 · 148 阅读 · 0 评论 -
适用于 HAL 的 AIDL
Android 11 引入了在 Android 中使用 AIDL 实现 HAL 的功能。这样就可以在不使用 HIDL 的情况下实现 Android 的部分代码。我们强烈建议尽量将 HAL 转换为只使用 AIDL(如果上游 HAL 使用 HIDL,则必须使用 HIDL)。如果 HAL 使用 AIDL 在框架组件(例如system.img中的组件)和硬件组件(例如vendor.img中的组件)之间进行通信,则必须使用稳定的 AIDL。不过,如需在分区内进行通信(例如从一个 HAL 到另一个),则对所...原创 2021-06-30 18:50:52 · 4881 阅读 · 3 评论 -
Android SystemUI 状态栏网络图标显示分析(Android 11)
最近看了一个wifi, ethernet切换,状态栏图表显示的问题。记录一下追踪由于网络状态变化,SystemUI 状态栏网络图标显示的流程。先看一下SystemUI这边:/frameworks/base/services/java/com/android/server/SystemServer.java/*** Starts a miscellaneous grab bag of stuff that has yet to be refactored and organized.*/p原创 2021-06-30 18:37:17 · 4695 阅读 · 3 评论 -
Android Camera processCaptureResult 分析
当camera open,并且顺利下发capture request之后,camera HAL完成capture操作,会通过HIDL定义的接口processCaptureResult将数据回传处理。/hardware/interfaces/camera/device/3.2/ICameraDeviceCallback.halICameraDeviceCallback是HIDL定义的camera回调接口,processCaptureResult方法就是从HAL层回调到CameraServer的接口,C原创 2021-06-29 12:36:18 · 2720 阅读 · 2 评论 -
Android Camera preview分析
大家使用API2开发相机APP时预览是调用CameraCaptureSession类的setRepeatingRequest方法,该方法的实现是由CameraCaptureSessionImpl完成的。/frameworks\base\core\java\android\hardware\camera2\impl\CameraCaptureSessionImpl.java @Override public int setRepeatingRequest(CaptureRequest原创 2021-06-28 18:59:56 · 1240 阅读 · 1 评论 -
Android camera createCaptureSession分析
在openCamera() 成功打开相机后,会通过CameraDevice.StateCallback回调接口onOpened()方法返回一个CameraDevice对象给应用层,而这个CameraDevice对象是一个CameraDeviceImpl,那么接下来的createCaptureSession就是调用它来实现的。/frameworks/base/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java @Overr原创 2021-06-28 14:06:31 · 2045 阅读 · 0 评论 -
Android camera 拍照 流程
APP347 /**348 * Take picture, initiating an auto focus scan if needed.349 */350 @Override351 public void takePicture(final PhotoCaptureParameters params, final CaptureSession session) {352 // Do not do anything when a pictur原创 2021-06-25 16:50:39 · 849 阅读 · 0 评论 -
Android camera preview流程
(原文链接:https://blog.csdn.net/weixin_41944449/article/details/102609776)APP在 Camera2 相机应用,打开相机应用将会调用到 Camera2OneCameraOpenerImpl 类 [packages/apps/Camera2/src/com/android/camera/one/v2/Camera2OneCameraOpenerImpl.java] 的 open() 方法,在该方法中将会通过 CameraManager..转载 2021-06-22 16:00:14 · 2448 阅读 · 0 评论 -
YCbCr色彩空间
一. RGB三原色光模式(RGB color model)表示方式R(red): 红色 G(green): 绿色 B(blue): 蓝色使用场景摄影, 彩色电视, 彩色显示屏二. HSV(HSL)HSV(HSL) 是一种将 RGB 色彩模型中的点在圆柱坐标系中的表示法。表示方式H(Hue): 色相(表示什么颜色) 每个角度上都有不同的颜色 S(Saturation): 饱和度(表示颜色的深浅) 色轮上的饱和度, 从圆心出发, 半径越大, 饱和度.原创 2021-06-22 14:43:51 · 10209 阅读 · 1 评论 -
Android camera open 流程
从 Application 连接到 CameraService,这涉及到 Android 架构中的三个层次:App 层,Framework 层,Runtime 层。其中,App 层直接调用 Framework 层所封装的方法,而 Framework 层需要通过 Binder 远程调用 Runtime 中 CameraService 的函数。(https://blog.csdn.net/qq_16775897/article/details/81537710)APP:mCameraManager.o原创 2021-06-21 18:38:55 · 2642 阅读 · 0 评论 -
Android Camera Provider and Service 启动流程
cameraserver 与 provider 这两个进程启动、初始化的调用逻辑,如上图所示(Thanks to :https://blog.csdn.net/qq_16775897/article/details/81240600)总体逻辑顺序:provider 进程启动,注册;cameraserver 进程启动,注册,初始化;cameraserver 获取远端 provider(此时实例化 CameraProvider 并初始化)上图中,实线箭头是调用关系。左边是 camerase..原创 2021-06-21 16:58:07 · 1695 阅读 · 1 评论 -
Treble 架构下的 Android Camera 框架
Camera 子系统从上到下分别是App/Framework,CameraService,HAL Impl App/FrameworkvsCameraService之间,通过AIDLbinder 通信 CameraServicevsCamera HAL之间,通过HIDLbinder 通信 App Framework部分是最上层部分,包括 Java & C++ 代码,实现了Android Camera2 API接口,提供给 android 应用使用,Java ...原创 2021-06-21 13:59:53 · 842 阅读 · 2 评论 -
Android External USB Cameras
The Android platform supports the use of plug-and-play USB cameras (that is, webcams) using the standardAndroid Camera2 APIand the cameraHIDLinterface. Webcams generally supportUSB video class (UVC)drivers and on Linux, the standardVideo4Linux (V4L)...原创 2021-06-21 13:39:19 · 1754 阅读 · 0 评论 -
Android CameraX based app
CameraX is an addition to Jetpack that makes it easier to add camera capabilities to your app. The library provides a number of compatibility fixes and workarounds to help make the developer experience consistent across many devices.API Referenceandroidx原创 2021-01-31 13:18:37 · 139 阅读 · 0 评论 -
android hostap start 流程
based on android10Android10版本(应该是从andorid9开始就是这样了)hostap start 关键是hostap.conf的生成。每次打开hostap, 都会自动生成confcode如下:external/wpa_supplicant_8/hostapd/hidl/1.2/hostapd.cpp531HostapdStatus Hostapd::addAccessPointInternal_1_2(532 const IfaceParams&原创 2020-08-04 19:06:44 · 1217 阅读 · 0 评论 -
android bluetooth enable 流程
based on Android 11/system/bt/btif/src/bluetooth.cc170static int enable() {171 if (!interface_ready()) return BT_STATUS_NOT_READY;172173 stack_manager_get_interface()->start_up_stack_async();174 return BT_STATUS_SUCCESS;175}system/bt/bti原创 2020-08-03 14:27:25 · 1400 阅读 · 0 评论 -
WLAN信道列表
WLAN信道列表是法律所规定的IEEE 802.11(或称为WiFi)无线网络应该使用的无线信道。802.11工作组划分了两个独立的频段,2.4 GHz和4.9/5.8 GHz。每个频段又划分为若干信道,且每个国家自己制定政策订出如何使用这些频段。2.4 GHz (802.11b/g)信道 频率 (MHz) 中国[1] 美国、 加拿大[1] 欧洲[1][2][3] 日本[1] 澳大利亚[4] 委内端拉 以色列 1 241.原创 2020-07-28 17:12:50 · 1040 阅读 · 0 评论 -
Android N Ethernet新IP获取机制—IpManager
https://blog.csdn.net/izobs_lin/article/details/52838862 android N之前 Ethernet旧的ip获取Android N之前,即android 5.0和android 6.0的IP转载 2020-07-15 16:09:54 · 1292 阅读 · 0 评论 -
AOSP中提供的Wi-Fi 和 Bluetooth测试,调试工具
本文主要介绍如何使用AOSP中提供的工具测试,调试Wi-Fi 和 Bluetooth。BluetoothUnit tests in AOSPAOSP includes functional and unit tests for the default Bluetooth stack. These tests are located insystem/bt/test. To run the AOSP tests, do the following:Stop the Android ru...原创 2020-05-20 10:14:26 · 1766 阅读 · 0 评论 -
android wifi scan and auto re-connect
Target platform: android Q10 platformandroid 会将已连接的wifi AP保存到这个文件: data/misc/wifi/WifiConfigStore.xml然后当wifi 再次打开的时候 scan results后 会将scan results和保存的已连接的wifi AP 中对比, 如果有已保存的wifi网络,则自动重连。以下是一个已保存...原创 2020-04-14 14:52:39 · 1086 阅读 · 0 评论 -
opengrok setup on ubuntu for android source code browser
软件需求JDK1.8 或者更高版本 OpenGrok '''binaries''' fromhttps://github.com/OpenGrok/OpenGrok/releases https://github.com/universal-ctagsfor analysis (不是 Exuberant ctags, 这货落伍了) git clone https://git...原创 2020-01-10 13:58:02 · 952 阅读 · 0 评论 -
android dumpsys debug tools
dumpsysdumpsys是一种在 Android 设备上运行的工具,可提供有关系统服务的信息。可以使用 ADB 从命令行调用dumpsys,获取在连接的设备上运行的所有系统服务的诊断输出。我们可以使用下文所述的命令行选项仅获取感兴趣的系统服务的输出。语法使用dumpsys的一般语法如下: adb shell dumpsys [-t timeout] [-...原创 2019-12-24 17:37:22 · 188 阅读 · 0 评论 -
linux Wireless (wext cfg80211 nl80211 mac80211 )
http://wireless.kernel.org/en/developers/Documentation/mac80211关于mac80211mac80211是一个框架,驱动程序开发人员可以使用它来编写SoftMAC无线设备的驱动程序。SoftMAC设备允许对硬件进行更精细的控制,允许在软件中实现802.11帧管理,包括解析和生成802.11无线帧。今天大多数的802.11设备往往是这种类型的...转载 2018-05-24 19:35:58 · 2848 阅读 · 0 评论 -
Android - BlueTooth BLE 之 Central 与 Peripheral
一.前言Andorid 5.0 之前是无法进行 外围设备开发的,在Android 5.0 API 21 android.bluetooth.le包下,新增加 Scaner相关类和 Advertiser 相关类。目前最后使用Scanner相关类实现蓝牙扫描。这段时间对蓝牙的学习与理解,对中心设备与周边设备做下面总结。先看下 android.bluetooth.le 包下内容:1. Android B...转载 2018-05-24 21:56:28 · 5323 阅读 · 0 评论 -
Android Netd
一.概述 所谓 Netd 就是Network Daemon 的缩写,表示Network守护进程,类似的命名还有很多,例如 Vold(Volumn Deamon),Rild(Radio Interface Layer Deamon) Netd负责跟一些涉及网络的配置,操作,管理,查询等相关的功能实现,比如,例如带宽控制(Bandwidth),流量统计,带宽控制,网络地址转换(NA...转载 2018-05-24 21:40:37 · 5412 阅读 · 0 评论 -
Android Says Bonjour
转载自: https://blog.csdn.net/innost/article/details/8629139Android Says Bonjour很高兴能在农历蛇年刚开始的这期《程序员》杂志上继续为读者奉上Android的故事。初来咋到,首先要向大家说声”你好“。有意思的是,Android也很通人情,从4.1开始,它会说”Bonjour“了。不过它说得是不是原汁原味的法语腔呢?来看下文。一...转载 2018-05-24 21:21:18 · 896 阅读 · 0 评论 -
Android wifi打开流程(Android O)
版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/h784707460/article/details/79572861根据自己的理解整理了Android O的wifi启动流程,为便于理解,绘制了Android O wifi架构图。有理解不到之处和错误之处,请各位指出,一起学习。一. Android O wifi 架构:由于Android O的Treb...转载 2018-05-24 20:32:16 · 2840 阅读 · 1 评论 -
Android Oreo8.0 使用wpa_supplicant和wpa_cli(更新AndroidPie9.0)
使用wpa_cli关键是先启动wpa_supplicant,而启动wpa_supplicant关键是要指定好启动参数,文件路径要对。 启动WLAN(1)加载驱动 android系统需要先load driver。手动调试dirver ko的时候,先调用insmod命令加载指定的wifi驱动。 再调用iwconfig可以看到驱动是否加载成功,如下,可以看到wlan0已经有了,则驱动加载...原创 2018-05-28 18:43:03 · 3301 阅读 · 4 评论 -
安卓8.0 WIFI差异分析
[java] view plain copy======================================================================== /packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java mWifiEn...转载 2018-05-24 20:25:42 · 1384 阅读 · 0 评论 -
Android MTP框架和流程分析
概要本文的目的是介绍Android系统中MTP的一些相关知识。主要的内容包括:第1部分 MTP简介 对Mtp协议进行简单的介绍。第2部分 MTP框架 介绍Android系统下MTP的框架。第3部分 MTP启动流程 详细分析MTP服务的启动流程,包括Java层, JNI层, kernel相关知识的介绍。第4部分 MTP协议之I-&g...转载 2018-06-22 10:18:01 · 975 阅读 · 0 评论 -
Android 8.0的WIFI 架构差异分析
版权声明:本文为原博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gh201030460222/article/details/80717604Android 8.0 wifi架构1. Android 8.0 wifi差异1)与其他Android版本相比,整体架构还来,就多了个wificond跟底层的通信,当然framework整个的修改,还是挺大的 2)wifi...转载 2018-06-27 14:56:56 · 5476 阅读 · 2 评论 -
Android 启动时间优化
Android Boot timing properityInit records some boot timing information in system properties.`ro.boottime.init`> Time after boot in ns (via the CLOCK\_BOOTTIME clock) at which the first stage of ...原创 2018-07-17 15:05:33 · 4769 阅读 · 0 评论