Android
文章平均质量分 75
JerryHe
长期在智能移动设备、汽车智能座舱领域进行研发工作,
参与过多款当下畅销汽车的智能座舱研发工作,目前在一家集AI与智能汽车产品集团从事智能舱驾产品研发工作
展开
-
如何在Ubuntu20.04上安装adb和fastboot
在连接android设备之前,我们需要确保设备已启用“ USB调试”。可以通过进入“设备设置”然后进入“开发者选项”来启用它(某些设备要求您在“关于电话”部分的“ Android版本”上点击几次以启用“开发者选项”)。现在,一旦启用,我们所要做的就是使用USB电缆将我们的Android设备连接到Ubuntu系统。步骤1.首先,通过apt在终端中运行以下以下命令,确保所有系统软件包都是最新的。注意:如果在连接设备后获得有关错误的任何权限,请重新启动ADB服务器,然后重试。步骤3.检查ADB连接。原创 2024-07-26 17:00:45 · 1132 阅读 · 0 评论 -
Android 开发中px、dpi 和 dp三个单位的介绍
最小的显示单位,用于精确控制元素大小和位置。表示屏幕每英寸的像素数,用于适配不同密度的设备。建议使用的单位,可根据设备密度进行适配,用于定义布局大小和间距。在 Android 开发中,理解和正确使用这些单位是确保应用在不同设备上良好显示和用户体验的关键。原创 2024-07-25 19:58:30 · 964 阅读 · 0 评论 -
Android应用加载那个mipmap
不同的 mipmap 文件夹对应不同密度的设备,系统会根据设备的实际密度(DPI,dots per inch)来选择最合适的资源加载。文件夹是 Android 开发中用来存放适用于非常高密度设备(xxxhdpi 设备)的应用图标资源的文件夹,是为了优化在高分辨率屏幕上的显示效果而设计的。因此,开发者需要根据不同的密度为应用提供不同分辨率的图标资源,确保在不同屏幕密度的设备上显示时都能保持良好的视觉质量和清晰度。适用于高密度屏幕,约为 240dpi 的设备,通常是早期高端 Android 设备的标准。原创 2024-07-25 19:52:41 · 925 阅读 · 0 评论 -
Android中的usescleartexttraffic属性详解
usesCleartextTraffic 是 Android 应用程序开发中的一个重要配置选项,用于控制应用程序是否允许通过不加密的 HTTP 协议进行网络通信。在 Android 应用的开发过程中,正确地配置 usesCleartextTraffic 对于保护用户数据安全、符合最佳实践和遵守法律法规非常重要原创 2024-07-24 13:51:54 · 2326 阅读 · 0 评论 -
Android应用中的明文流量配置问题
AndroidManifest.xml 文件中的网络安全配置属性,用于指定应用是否允许发送和接收未加密的网络流量。在Android中,默认情况下,应用程序无法使用明文(非加密)的网络请求。然而,有时候我们需要允许应用程序使用明文流量,以便与不支持加密的服务器进行通信。这是更安全和推荐的方法。通过使用HTTPS协议来加密网络通信,可以确保数据在传输过程中的安全性。因此,建议仅在确保服务器支持加密通信的情况下使用此方法。但是,请考虑到安全性和数据保护的重要性,尽量避免使用明文流量,而是使用加密通信。原创 2024-07-24 13:45:56 · 356 阅读 · 0 评论 -
Android中systrace配置及注意问题
systrace 允许在启动期间收集内核和 Android 跟踪记录。systrace 的可视化可以帮助分析启动过程中的具体问题。(不过,如果要查看整个启动过程中的平均数量或累计数量,直接查看内核跟踪记录更为方便。解决“ImportError: No module named win32con”和“ImportError: No module named six”由于事件过多,I/O 分析通常需要直接分析捕获的 boot_trace。如果是详细的 I/O 分析,还要添加块以及 ext4 和 f2fs。原创 2024-07-22 16:17:17 · 1390 阅读 · 0 评论 -
Android系统中如何删除开机动画
Animation的资源大小和播放时长一直是影响开机时间的重要因素之一,移除开机动画将有效地加快开机速度。或者在mk文件中直接配置 debug.sf.nobootanimation 属性值为1即可。原创 2024-07-22 16:08:07 · 398 阅读 · 0 评论 -
am start -W 命令详解-可以测量应用启动时间的命令
是一个 Android am命令的参数子集,用于启动应用程序并等待应用程序启动完成。这个命令非常有用,特别是当你需要测量应用程序启动时间或者调试应用程序的启动过程时。原创 2024-07-20 10:17:45 · 1085 阅读 · 0 评论 -
am start 命令详解
在 Android 中,am start 命令是一个强大的工具,用于启动应用程序的活动、服务或广播接收器。它是 Android Debug Bridge (ADB) 工具的一部分,允许开发者和测试人员在命令行中启动应用程序的组件、进行调试以及进行测试。本文将详细介绍 am start 命令的使用、参数、进阶技巧和调试方法。原创 2024-07-20 10:09:15 · 2419 阅读 · 0 评论 -
Android init.rc各阶段的定义和功能
early-init阶段定义early-init是系统启动的最初阶段,用于完成最基本的系统初始化任务。功能挂载关键分区:如/system/data/vendor。设置基本系统属性。进行一些基础的初始化操作。配置示例# early-init 阶段的任务# 挂载系统分区# 设置基本系统属性触发时机: 在init进程开始运行后立即执行,通常在内核完成启动后最初的阶段。功能总结挂载分区。设置系统属性。基础初始化任务。原创 2024-07-19 14:19:02 · 1683 阅读 · 0 评论 -
Android init.rc的启动流程
Android 系统的启动过程分为几个主要阶段,每个阶段负责不同的初始化任务。在 Android 启动时,init程序是第一个运行的用户空间进程。init负责启动系统服务、挂载文件系统、设置权限等任务。init.rc是init程序的配置文件,定义了这些启动任务和服务的详细信息,文件中的指令会按照特定的顺序执行来完成这些任务。原创 2024-07-19 14:02:01 · 1334 阅读 · 0 评论 -
Android init 中的wait_for_property指令
指令用于在init.rc文件中等待特定的系统属性达到预期值。系统属性是 Android 操作系统中的一种键值对机制,用于在不同的系统组件之间传递信息。原创 2024-07-18 14:22:48 · 1141 阅读 · 0 评论 -
如何识别Android init 中的缓慢操作
在 Android 系统中,init进程负责启动系统服务、配置属性和执行系统初始化任务。识别和优化init进程中的缓慢操作对于提高系统启动性能和整体响应性至关重要。本文档将详细介绍如何识别init中的缓慢操作,提供具体的方法和工具,以及如何解决这些问题。原创 2024-07-18 13:29:37 · 1105 阅读 · 0 评论 -
Android开机优化系列文档
Android系统开机优化系列文档,将与开机优化相关的文档收集在这里,便于管理和查看。原创 2024-07-17 17:16:58 · 339 阅读 · 0 评论 -
Android init常用调试工具
高级文件系统调试工具,可以查看和修改文件系统的内容。是 Android 系统中的第一个用户空间进程,负责启动系统服务、设置系统属性和处理启动任务。进程调试工具的详细介绍,包括工具的使用方法、命令示例和应用场景。进程的性能问题和配置问题是提高系统启动效率和可靠性的关键任务。进程中的性能问题,识别缓慢操作的根本原因,并进行相应的优化。是一个命令行工具,用于收集跟踪数据,查看系统和应用的事件。是一个更高级的性能分析工具,提供详细的系统级别的性能数据。是一个用于收集设备状态的工具,可以帮助诊断系统问题。原创 2024-07-17 16:57:32 · 1020 阅读 · 0 评论 -
Android init.rc如何并行执行任务
在 Android 系统中,init.rc 是一个重要的启动脚本,用于定义系统启动时需要执行的服务、操作和初始化任务,也是用来配置系统启动时的各种服务、属性和动作的脚本文件。虽然 init.rc 文件本身是一个序列化的配置文件,init.rc 文件中的命令通常按顺序执行,但 Android 的 init 进程和 init.rc 文件中的机制允许一定程度的并行执行任务,通过特定的机制,Android 也支持并行执行 init.rc 中的命令。原创 2024-07-17 14:52:39 · 1235 阅读 · 0 评论 -
Android系统中Launcher应用是被谁启动的
在 Android 系统中,Launcher是一个重要的应用,它负责显示主屏幕、管理应用程序图标和提供启动应用程序的界面。Launcher 是由启动和管理的,具体来说,Launcher 的启动过程涉及多个 Android 系统组件和机制。原创 2024-07-16 16:50:46 · 1022 阅读 · 0 评论 -
Android 14 开机时间优化措施汇总
优化Android设备的开机时间是提升用户体验和设备性能的关键任务。以下是针对Android 14开机时间优化的全面措施汇总,包括不同层级的优化策略、工具和方法。原创 2024-07-15 18:00:27 · 1199 阅读 · 0 评论 -
Android 14 开机时间优化措施
在Android 14中,优化开机时间涉及多个层级的性能优化,从系统启动到应用加载的每一个阶段都可能影响最终的开机时间。以下是详细的措施和策略,可以帮助我们在Android 14设备上进行开机时间优化。原创 2024-07-15 17:55:56 · 1626 阅读 · 0 评论 -
根据systrace报告优化系统时需要关注的指标和优化策略
在优化系统时,systrace是一个非常有用的工具,它可以帮助开发人员分析和优化系统性能。systrace。原创 2024-07-14 22:53:38 · 311 阅读 · 0 评论 -
Android系统上常见的性能优化工具
这些工具可以开发人员更全面、深入地理解和优化 Android 应用的性能。原创 2024-07-14 22:49:45 · 574 阅读 · 0 评论 -
分析 Android 应用中的日志信息应遵循的原则
用于记录大量的调试信息,通常在开发过程中使用,以便全面了解应用的内部运行情况。但在发布的应用中一般不建议保留大量的。通过以上方法,可以更有效地从 Android 应用的日志中提取有价值的信息,帮助我们解决问题、优化应用性能和改进功能。这表示可能存在潜在的问题或需要关注的情况,但应用还能继续运行。在实际开发中,根据不同的场景和需求选择合适的日志级别,可以更有效地进行调试和监控应用的运行状况。稍微简洁一些,主要用于帮助开发人员在调试阶段跟踪应用的流程和变量值等。级别的日志来提供基本的运行信息。原创 2024-07-14 22:40:31 · 336 阅读 · 0 评论 -
在 Android 应用中使用日志记录功能应遵循的原则
在 Android 中考虑使用一些成熟的日志框架,如 Logback、Log4j 等,它们提供了更强大的功能和配置选项。为每个日志消息设置一个独特且有描述性的标签,以便于在查看日志时快速区分不同模块或功能的输出。使日志消息清晰、简洁,并包含足够的上下文信息,以便在出现问题时能够快速理解。特别是在测试和出现问题时,通过查看日志来发现和解决潜在的问题。不要在日志中包含用户的个人身份信息、密码或其他敏感数据。避免过度记录日志,以免影响应用性能和占用过多的存储空间。如前所述,在发布的生产版本中,通常只保留关键的。原创 2024-07-14 22:32:39 · 200 阅读 · 0 评论 -
Android上如何使用perfetto分析systrace
可以编写 Python 脚本来解析和分析 Perfetto trace 数据。Perfetto 提供了 Python API 进行更深层次的数据处理。示例:使用 Perfetto 分析 Systrace 数据。原创 2024-07-11 16:57:48 · 1349 阅读 · 1 评论 -
Android系统设置kernel log level的方法
kernel log内容过多/过少会影响分析问题,各种系统的版本对kernel log的等级要求也不一样,因此需要对kernel log进行设置。原创 2024-07-11 16:39:59 · 1440 阅读 · 0 评论 -
Android系统通过属性设置来控制log输出的方案
编译后的版本,就可以根据需要通过以下两个属性,对AccessibilityCache.java和GnssLocationProvider.java文件中的log进行输出控制。2、可以在系统中任意的rc文件中添加属性配置,这里我们选择system/core/logcat/logcatd.rc文件。由于该属性不能直接进行保存,所以,需要进行转接,通过persist属性进行控制。1、通过Log.isLoggable控制的log属性标签。在其中对log.*属性和persist.*属性进行关联。原创 2024-07-10 19:02:09 · 640 阅读 · 0 评论 -
Android14系统应用统一裁剪方案
当前移除集成到系统里的应用,一般都是根据应用名,到各个mk文件里逐个在PRODUCT_PACKAGES中删除;参考PRODUCT_PACKAGES变量,添加PRODUCT_DEL_PACKAGES变量,用来管理裁剪掉的应用。新增一行_product_single_value_vars += PRODUCT_DEL_PACKAGES。裁剪掉EasterEgg,然后进行编译,完成后,在out中查找不到EasterEgg相关生成物。一般编辑的文件路径为device/公司名/产品名/device.mk。原创 2024-07-10 17:05:36 · 1281 阅读 · 0 评论 -
使用ADB命令控制logcat日志本地存储功能
因此对于无法进入工程模式GUI界面的场景需要一种方式,在不进行界面操作或切换 USB mode的情况下,也能启用 logcat 日志的本地存储。使用GUI界面的工程模式/开发者选项可以打开 logcat 日志的本地存储功能,从而可以很方便的抓取完整的开机日志。这种命名很相似的属性,他们的什么区别和联系,可以从代码中关于各属性的描述进程查看。在命令行环境下,通过直接修改下列属性值,就可以打开/关闭 logcat 日志本地存储功能。这个属性进行了重新定义造成的,可搜索这个属性在代码中的位置,跟踪分析原因。原创 2024-07-09 19:25:12 · 1830 阅读 · 0 评论 -
Android多用户基础问题
将用户添加到设备后,当另一个用户位于前台时,某些功能会受到限制。由于应用程序数据是按用户分开的,因此这些应用程序的状态因用户而异。例如,发送至当前未关注的用户帐户的电子邮件将不可用,直到该用户和帐户在设备上处于活动状态。此外,如果设备需要额外的内存用于前台用户的操作,系统进程将停止后台辅助用户。默认情况下,退出访客模式时,访客用户会话中的信息不会保留。(用户 ID = 0)身份运行,而不管当前用户是哪个用户。因此,取决于用户的设备路径(如。管理员用户可以删除应用程序,甚至可以删除辅助用户建立的整个工作区。原创 2024-07-08 17:27:19 · 1075 阅读 · 0 评论 -
Android多用户adb命令
profileOf userId:可选参数,用于指定新用户的配置文件。新用户将会继承指定用户的配置文件。如果不提供此参数,则新用户将拥有默认的配置文件。–managed:可选参数,指定新用户是否是受管理的。如果提供了此参数,则新用户将是受管理的,否则将是普通用户。为特定用户列出软件包(-e 可列出已启用的软件包,-d 可列出已停用的软件包)。默认情况下,此命令始终为系统用户列出软件包。adb shell操作多用户的命令如下。获取当前(前台)用户 ID。安装应用到某个用户下。为特定用户卸载软件包。原创 2024-07-08 17:25:32 · 1022 阅读 · 0 评论 -
Android Studio Run窗口中文乱码解决办法
依次打开菜单:Help--Edit Custom VM Options,打开studio64.exe.vmoptions编辑框(如果没有该文件,请按照提示自动创建即可)在studio64.exe.vmoptions中添加 -Dfile.encoding=UTF-8。shift 按键多次出发,在其中输入vmoptions,打开编辑。重启AndroidStudio。原创 2024-07-06 21:49:54 · 365 阅读 · 0 评论 -
内存对齐宏ALIGN的理解
在Android相机HAL代码中经常看到ALIGN这个宏,主要用来进行内存对齐,下面是v4l2_wrapper.cpp中ALIGN的一些定义。在函数中,出现 ALIGN的地方,用后面的((size + align - 1) & (~(align - 1)))代替!现在要分配一个内存空间,从0地址开始,size为需要占据的字节大小,按照align个字节对齐,则结束地址应该为多少。ALIGN(15, 4),就应该等于16,我们计算一下,会发现确实等于16。就是定义一个常量函数常量ALIGN。原创 2024-07-06 21:36:46 · 421 阅读 · 0 评论 -
Android Camera API发展历程
Android系统中Camera API是用于控制相机设备的主要API,到目前为止,Camera API历史上共历经了三版重要的API。在Android 5.0之前,主要使用的是Camera API1,但现在已经弃用。从Android 5.0开始,Google推荐使用Camera2 API。在更高版本的Android中,CameraX API被引入,它是基于Camera 2 API的封装,进一步简化了开发流程,并增加了生命周期控制。原创 2024-07-05 15:47:06 · 1249 阅读 · 0 评论 -
Android系统开启Docker支持
第8步:运行Moby检查脚本,查看CONFIG状态,若CONFIG项没有missing,则表示当前kernel已支持docker, 若仍有显示missing的项,则需重复第4步开始的操作,直至所有CONFIG项没有missing.第3步:运行Moby检查脚本,检查内核缺失项配置参数,查看CONFIG状态,显示missing的配置项,即为缺失的功能。具体参考如下:---在我们当前项目代码里需要验证。----原因:到6.1.9版本,仍未进入Linux主线内核,所以这些参数是开不了的。原创 2024-07-05 15:34:44 · 732 阅读 · 2 评论 -
Android文件路径获取
在Android中获取文件路径的几种方法,包括获取应用的私有文件路径、缓存文件路径、SD卡的根目录路径,以及特定类型和特定应用的外部存储目录路径。而要操作文件,首先需要获取文件的路径。除了获取SD卡的根目录路径外,还可以获取特定类型的外部存储目录路径,比如公共图片目录、公共音频目录等。在Android中,每个应用都有自己的私有文件路径,其他应用无法直接访问这些文件。除了私有文件路径,应用还可以使用缓存文件路径来存放临时文件或缓存文件。有时候我们需要将文件存放在特定应用的外部存储目录中,可以使用。原创 2024-07-04 10:48:19 · 1756 阅读 · 1 评论 -
Android各种存储路径的比较
到这个目录的时候,用相对路径。需要注意的是,这个文件的目录和应用的存储位置有关, 当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当。应用外部存储空间(数据文件非私有,可以被手机的系统程序访问(如MP3格式的文件,会被手机系统检索出来),同样,该目录下的文件,所有的APP程序也都是可以访问的,)应用外部存储空间(数据文件非私有,可以被手机的系统程序访问(如MP3格式的文件,会被手机系统检索出来),同样,该目录下的文件,所有的APP程序也都是可以访问的,)原创 2024-07-03 19:02:29 · 837 阅读 · 0 评论 -
Android存储权限梳理及api接口调用
Android系统的文件存储按存储介质类型分为内部存储和外部存储,按存储目录类型分为私有目录和公共目录;对于Android系统中的进程来说,如果需要存储空间,需要按需申请对应的权限才能访问;否则是不能达到目的的。开发中经常会进行文件存储,可以根据具体需求,选择合适的方案对文件进行存储,参考如下:当需要存储一些私密性和安全性比较高的小数据,例如用户的账号密码等信息,可以存放在内部存储空间上。原创 2024-07-03 18:57:31 · 1244 阅读 · 1 评论 -
Android 常用文件系统命令
当系统正在对某个文件系统的区域进行写入操作时(读的话没关系),突然断电,会造成文件系统对应区域的损坏(如写入脏数据), 而e2fsck算法就是用来恢复受损的文件系统,目的是:系统能够重启后,一切正常。当然,有损坏,想原样修复,当然不能100%保证,所以,就遇到了某些系统文件丢失,或者文件属性发生变化的事情。文件损坏会报错structure needs cleaning(结构需要清理)。Android车机系统的重启,默认是从通过QNX直接给Android掉电,没有走Android的正常重启流程;原创 2024-07-02 13:36:35 · 524 阅读 · 0 评论 -
Android system.img挂载和解除挂载
system.img、vendor.img 都存在两种格式raw,sparse ,在ubuntu命令窗口下执行下执行:file system.img可以查看文件的信息。一种是raw ext4 image,即经常说的raw image。使用file观察它: 其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大(一般1G左右)。file 查看另一种是sparse ext4 image,即经常说的simg就是说是一个非常普通的dat文件。原创 2024-07-01 20:06:11 · 784 阅读 · 0 评论 -
Android super.img结构及解包和重新组包
Android10开始使用动态分区,system、vendor、 odm等都包含在super.img里面,编译后的最终镜像不再有这些单独的 image,取而代之的是一个总的 super.img.原创 2024-07-01 19:49:45 · 2912 阅读 · 0 评论