- 博客(61)
- 资源 (3)
- 收藏
- 关注
原创 【Android11】开机启动日志捕捉服务
制作这个功能的原因是客户想要自动的记录日志中的报错和警告到设备的内存卡里面。虽然开发者模式中有一个“bug report” 会在目录下生成一个zip包记录了日志。但是客户觉得这个日志很难获取到他们需要的信息,他们想要的是logcat这种。于是我只能在网上寻找相关的解决办法。!!他使用了一个服务来过滤logcat日志并且记录下来,我这里将他转换成kotlin然后设置成开机启动。
2024-06-27 17:34:52
976
原创 Android 系统设置中的休眠和屏保
由于客户在Android 系统设置中发现Timeout设置项没有效果,因此我对此研究了一下。Timeout是定时屏幕亮度降低,而Dream则是进入屏幕保护。如果是机顶盒等设备的开发者发现这个设置项没用,别见外,因为这里的亮度调整对TV是没用的,因此 ‘Screen Timeout’ 和‘brightness’ 是没用的。
2024-06-25 14:31:13
872
原创 【Android 11】查看与修改默认音量和最大音量
在 Android 系统中,音量设置和修改涉及多个方面,包括音量类型、系统设置、应用代码,以及用户交互方式。
2024-06-13 17:17:16
261
原创 【Android 11】AOSP Settings添加屏幕旋转按钮
这里是客户要求添加按钮以实现屏幕旋转。这里的值可以是0,1,2,3 的任意一个。我这里没有陀螺仪,所以只需要这个命令就够了。更多的可以参考但是这有个缺陷,就是开机的动画不能随着设置好的屏幕方向旋转。
2024-06-13 11:55:12
578
原创 遥控器无法点击AOSP Settings 的热点分享二维码
WIFI热点功能里面 右边有一个二维码按钮,是用来显示热点二维码的,同样遥控器无法点击,因此这里设置当聚焦到这个设置项的时候按下右键显示二维码。
2024-06-13 11:35:00
144
原创 遥控器无法点击AOSP Settings 的管理存储按钮 MANAGE STORAGE
这里是遇到了MANAGE STORAGE的按钮使用遥控器移动的时候无法聚焦到这个按钮,自然也就无法点击。它只能聚焦到这一整个整体,因此我就设置当点击到这一整个整体时,就相应MANAGE STORAGE按钮的点击事件。
2024-06-13 11:31:26
217
原创 Android11 AOSP Settings设置项没有阴影(遥控器操控)
原本的AOSP Settings对遥控器的适配不太行,很多地方遥控器移过去,当聚焦到某一个设置项的时候会没有阴影聚焦框。这里对部分聚焦框的改动进行总结。
2024-06-13 11:23:21
350
原创 【Android】系统性学习——Android系统启动
prop属性的设置有两个地方:一个是配置文件读取的,一个是系统动态获取的1、在android源码目录下的: system/core/init/property_service.cpp 文件中的函数if (!if (!这里会从prop.default里面读取基础属性endefbuild/make/tools/buildinfo.sh这里面设定了一些基础属性。这里主要用于定义系统设置的默认值。这些默认设置在系统初始化时会被加载,并提供初始的系统配置,确保设备在第一次启动时有合理的设置值。
2024-06-12 16:42:40
692
原创 【Android 11】AOSP Settings APP info 界面展示所有应用
Android 11 的AOSP settings的默认情况中,点击应用和通知,展示全部应用之后里面是筛选过的应用。(APP info界面)有很多内置的应用以及插件是被过滤掉的不显示的。但是客户提出想要在右上角菜单栏加一个菜单,可以选择显示或者不显示全部的apps经过研究之后发现加菜单比较麻烦。所以选择在顶部加一个按钮来实现。
2024-02-26 15:32:28
930
原创 【安卓的签名和权限】
大部分公司在自定义自己的秘钥的时候,都会做出如下修改在产品的mk中指定PRODUCT_DEFAULT_DEV_CERTIFICATE,如:device/amlogic/产品名/产品名.mk:endif一旦指定了PRODUCT_DEFAULT_DEV_CERTIFICATE就不会再使用默认的testkeybuild/core/config.mk文件:elseendif。
2024-01-02 21:49:18
1358
原创 Linux驱动开发简易流程
其中“mknod”是创建节点命令,“/dev/chrdevbase”是要创建的节点文件,“c”表示这是个字符设备,“200”是设备的主设备号,“0”是设备的次设备号。当我们在用户空间想要实现对内核的操作,比如使用 open 函数打开/dev/led 这个驱动,因为用户空间不能直接对内核进行操作,因此必须使用一个叫做“系统调用”的方法来实现从用户空间“陷入”到内核空间,这样才能实现对底层驱动的操作。第 3 行,obj-m 表示将 chrdevbase.c 这个文件编译为 chrdevbase.ko 模块。
2023-12-30 11:23:31
2162
原创 【AOSP】生成签名文件release key,通过Android源码对apk进行签名
现在apk都需要签名,Flutter做的项目官方规定编译apk必须签名。
2023-11-24 11:43:12
2279
1
原创 【Android11】Amlogic方案红外遥控器配置,定制按键,power按键(2024.7.1)
以amlogic方案为例,介绍红外遥控器的适配。以及客制化按键的定义,
2023-11-22 13:49:03
1672
原创 【Android11】在内置的Tvsettings的界面中显示以太网Mac地址
这里实现获取以太网MAC的逻辑是使用获取并且将其转化为小写以适应其他设置项MAC地址的风格。这里注意,static final String KEY_XXX 的这个key要和我们第一步设置的key一样。Properties是什么可以自行去搜索,简单的来说就是存了很多参数的配置文件,在板子运行时可以通过控制台使用getprop命令查看所有的Properties,也可以getprop+具体参数名来搜索具体某一个参数的值。
2023-11-21 09:08:28
507
原创 【嵌入式Android入门经验】刚毕业的职场新人的感受和所见
根据我工作几个月的经验和我在网上找的一些经验贴的知识来看,我应该是基本了解了这方面的学习方向,这里我做成经验贴供有缘人参考。
2023-10-08 15:38:29
192
1
原创 《第一行代码Andorid》阅读笔记-第十三章(最终章)
我们需要将数据对应的实体类创建好,我们共建立了六个实体类分别如下AQI:存放城市的AQI指数以及PM2.5指数Basic:存放城市名、weatherId、update、updateTimeForecast:存放date、temperature、more、最高气温、最低气温、infoNow:气温和天气情况Suggestion:生活建议Weather:近期每一天的天气情况,放了一个List。
2023-10-07 17:23:04
101
原创 《第一行代码Andorid》阅读笔记-第九章
服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。需要注意的是,服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行。另外,也不要被服务的后台概念所迷惑,实际上服务并不会自动开启线程,所有的代码都是默认运行在主线程当中的。
2023-10-07 17:15:21
90
原创 《第一行代码Andorid》阅读笔记-第六章
内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android实现跨程序共享数据的标准方式。不同于文件存储和SharedPreferences存储中的两种全局可读写操作模式,内容提供器可以选择只对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄漏的风险。
2023-10-07 17:03:39
155
原创 《第一行代码Andorid》阅读笔记-第五章
数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。保存在内存中的数据是处于瞬时状态的,而保存在存储设备中的数据是处于持久状态的,持久化技术则提供了一种机制可以让数据在瞬时状态和持久状态之间进行转换。Android系统中主要提供了3种方式用于简单地实现数据持久化功能,即文件存储、SharedPreferences存储以及数据库存储。
2023-10-07 16:57:50
69
原创 《第一行代码Andorid》阅读笔记-第四章
注册和接收自己感兴趣的广播Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。完整APIAndroid提供了一套完整的API,允许应用程序自由地发送和接收广播。发送/接收广播的方法发送广播的方法,就是借助之前稍微提到过学过的Intent。而接收广播的方法则需要引入一个新的概念——广播接收器(Broadcast Receiver)。
2023-10-07 16:50:20
36
原创 《第一行代码Andorid》阅读笔记-第三章
平板电脑和手机最大的区别就在于屏幕的大小,一般手机屏幕的大小会在3英寸到6英寸之间,而一般平板电脑屏幕的大小会在7英寸到10英寸之间。屏幕大小差距过大有可能会让同样的界面在视觉效果上有较大的差异,比如一些界面在手机上看起来非常美观,但在平板电脑上看起来就可能会有控件被过分拉长、元素之间空隙过大等情况。作为一名专业的Android开发人员,能够同时兼顾手机和平板的开发是我们必须做到的事情。Android自3.0版本开始引入了碎片的概念,它可以让界面在平板上更好地展示。
2023-10-07 16:46:12
45
原创 《第一行代码Andorid》阅读笔记-第一章
这篇文章是我自己的《第一行代码Andorid》的阅读笔记,虽然大量参考了别人已经写好的一些笔记和代码但是也有自己的提炼和新的问题在里面,我也会放上参考文章链接。
2023-10-07 16:40:38
97
原创 《第一行代码Andorid》阅读笔记-第二章
作用:复用,组合引入布局的技巧确实解决了重复编写布局代码的问题,但是如果布局中有一些控件要求能够响应事件,我们还是需要在每个活动中为这些控件单独编写一次事件注册的代码。比如说标题栏中的返回按钮,其实不管是在哪一个活动中,这个按钮的功能都是相同的,即销毁当前活动。而如果在每一个活动中都需要重新注册一遍返回按钮的点击事件,无疑会增加很多重复代码,这种情况最好是使用自定义控件的方式来解决。新建一个java类TitleLayout继承自LinearLayout,让它成为我们自定义的标题栏控件。
2023-10-07 16:39:13
178
原创 CTF小白新手导航(基础建议)
基于本人学习ctf的一点点入门经验(一点点嗷,本人也才刚刚刚入门),给一些想要入门的小伙伴一些资源的引路。
2022-08-31 09:36:58
19486
12
原创 CTF学习笔记——跨站脚本攻击
XSS (Cross Site Scripting),即跨站脚本攻击,是一种常见于 Web 应用中的计算机安全漏洞。恶意攻击者往 Web 页面里嵌入恶意的客户端脚本,当用户浏览此网页时,脚本就会在用户的浏览器上执行,进而达到攻击者的目的。比如获取用户的 Cookie、导航到恶意网站、携带木马等。借助安全圈里面非常有名的一句话:*所有的输入都是有害的。*这句话把 XSS 漏洞的本质体现的淋漓尽致。大部分的 XSS 漏洞都是由于没有处理好用户的输入,导致恶意脚本在浏览器中执行。...
2022-08-29 14:18:44
2307
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人