- 博客(107)
- 资源 (23)
- 收藏
- 关注
原创 android mtk camera修改default picture size & video size
示例中为720x1280,对应的比例为16:9,此时获取模组支持的size后,会选取16:9中最大的值为默认值,博主的设备选择的是2M(16:9) 1920x1088的,这样打开相机时,预览全屏。出于用户体验,全面预览比较合适,但是客户的使用场景需要默认最大,故产生此需求,修改patch如下。但是实际最大为5M(4:3) 2560x1920,选择此尺寸,预览并不会全屏,上下会有黑条。MTK的Camera app会根据屏幕尺寸适配最合适的拍照和录像尺寸。
2024-05-27 11:37:05
297
原创 android通过广播打印ram使用信息
在内存非常吃紧的情况下,android设备会开始kill部分非系统进程甚至系统进程来保证基本的系统运行。在这种情况下如何获取设备过去某段时间的ram使用情况至关重要。我们可以通过此途径,设计一套通过广播打印内存信息的方式以应对各种调试情况,此文仅将内存信息通过log的形式后台打印获取。1.发送的广播需要在BroadcastQueue.java特别处理,避免被系统拦截。3.RamInfo参考开发者模式中的方式获取过去某段时间的内存使用情况。通过开发者模式中的“内存”可以完美得知设备内存使用信息。
2024-02-20 10:18:14
396
原创 Android状态栏/通知栏图标白底问题
从android L版本开始,为了统一图标样式,会将通知栏、状态栏等显示图标处统一为白底或黑底,以促使开发人员规范图标设计。从现象看,状态栏会显示一个白底的方框;下拉通知栏展开时的图标为白底方框加圆框,不展开时为黑底方框。
2024-02-01 13:49:23
995
1
原创 android通过广播打印RAM信息
int型参数index:0 - 3h, 1 - 6h, 2 - 12h, 3 - 24h。广播:com.android.settings.action.RAM_INFO。代表过去时间app使用ram情况(平均/最大占用)通过广播打印ram相关log。
2023-12-04 11:23:10
299
原创 android高版本适配使用Tools.java
注意:请更新对应平台的api和sepolicy,笔者使用展锐T606 android 13平台,对应修改如下。
2023-12-04 09:59:53
260
原创 android 11安装apk自动获取权限
为获取除android.permission.MANAGE_EXTERNAL_STORAGE外的所有权限。为了解决android.permission.MANAGE_EXTERNAL_STORAGE,需要额外添加enableManageExternalStorage(packageName, resAppId);由于android 11以上版本对于读写权限的进一步限制,安装的apk获取权限的流程又加了一步,对于客户来说多半步也算复杂,根据之前的经验,在安装流程后打开全部权限即可。
2023-11-16 14:45:54
1759
原创 android 禁止拖动桌面时钟小组件
本文将介绍一种禁止拖动桌面时钟小组件的方案。首先,通过添加trace log追踪至拖动的唯一入口;其次,获取拖动对象的详细信息并区分是否是对应的小组件;最后,禁止进入拖动流程。
2023-09-21 15:24:18
337
原创 android 默认开启谷歌定位精准度
本文主要提供一种默认开启谷歌定位精准度开关的方案。通过调试时打开/关闭开关对比SettingsProvider的数据变化,在开机收到ACTION_BOOT_COMPLETED广播后,主动修改并填充数据,实现默认打开的需求。
2023-09-19 11:19:36
1007
原创 android 定时重启设备
本文主要介绍一种定时重启设备的方案,目的是对于低内存设备,防止其由于长时间不关机且应用消耗过多RAM导致卡顿甚至无法开机的现象。基本方案是通过AlarmManager设置定时闹钟唤醒系统并且判断是否符合重启条件,从而进行弹框提醒和倒计时重启。
2023-07-18 16:37:10
814
原创 android 禁止状态栏下拉
认证为了防止误操作与客户霸屏应用需求产生了此需求。禁止状态栏下拉从UI的角度进行分析,即难又容易。难的是android的SystemUI设计层层嵌套,即使使用工具进行分层分析,也需要耐心;容易很好理解,只要是UI界面的代码,总是能修改的。不同的android版本,不同的芯片厂商,对于SystemUi的改造大相径庭,从UI变化的角度切入很容易破题。
2023-03-13 14:14:50
968
原创 ubuntu16.04LTS安装kdesvn
摘要:本文主要介绍了ubuntu16.04LTS安装kdesvn1.6.0版本的过程。由于编译环境的更新,ubuntu 14.04已经无法继续编译android 12的系统,在更新至16.04后,svn这个常用的工具自然也需要重新安装,但是16.04的应用商店只有rapidsvn,没有kdesvn,搜索许多博客也并没有完整的安装教程,此文章由此而来。...
2022-06-07 13:51:00
645
原创 android系统侧修改控件焦点属性
问题:客户外包开发的apk团队解散了,使用场景只使用实体按键,通过Enter进入apk后,会自动将焦点锁定在返回键上,导致操作不便捷,操作快会直接退出apk。要求强制不要将焦点自动锁定至返回键。按键焦点的详解可以参考:Android强行进阶—按键事件&焦点事件攻略根据抓log排查,找到一个必经之路,直接上patch:Index: frameworks/base/core/java/android/view/View.java================================
2021-08-13 14:35:12
231
4
原创 android 9 申请动态权限android.permission.WRITE_EXTERNAL_STORAGE 允许后应用闪退
问题描述:如题,在调试android 9 高通msm8953平台时,客户反馈应用在允许Manifest.permission.WRITE_EXTERNAL_STORAGE权限后,应用闪退。从log分析是07-22 09:56:02.331 I/ActivityManager( 1658): Killing 9824:com.xxx.xxx/u0a123 (adj 100): permission grant or revoke changed gids系统认为gids变了就要杀掉应用参考:Andro
2021-08-03 15:01:56
2727
原创 android sd卡权限
把android P上被谷歌架空的media write权限补回来,解决外置存储卡复制、移动等操作,提示需要root权限的问题。frameworks/base/data/etc/platform.xml <permission name="android.permission.WRITE_MEDIA_STORAGE" > <group gid="sdcard_r" /> <group gid="sdcard_rw" />
2021-06-07 11:50:52
501
原创 Java与模式学习笔记 —— 策略(Strategy)模式
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。...
2021-05-11 11:33:51
241
原创 Java与模式学习笔记 —— 桥梁(Bridge)模式
将抽象化与实现化脱偶,使得二者可以独立地变化。桥梁模式的结构桥梁模式是对象的结构模式。如上图所示,系统含有两个等级结构:由抽象化角色和修正抽象化角色组成的抽象化等级结构。由实现化角色和两个具体实现化角色所组成的实现化等级结构。桥梁模式所涉及的角色有:抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。修正抽象(Refined Abstraction)化角色:扩展抽象化角色,改变和修正父类对抽象化的定义。实现化(Implementor)角色:这个角色
2021-05-06 14:16:52
393
2
原创 Java与模式学习笔记 —— 门面(Facade)模式
门面模式是对象的结构模式。外部与一个子系统的通信必须通过一个统一的门面对象进行。现代的软件系统都是比较复杂的,在划分成几个子系统之后,一个子系统的客户端往往与子系统内部的许多对象打交道才能完成一个功能,使得系统的逻辑变得复杂,维护成本提高,复用率降低。什么是门面模式门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式的门面类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与门面对象打交道,而不需要与子系统内部的很多
2021-04-26 11:38:54
201
1
原创 Java与模式学习笔记 —— 享元模式(Flyweight Pattern)
享元模式是对象的结构模式,以共享的方式高效地支持大量的细粒度对象。共享的关键是区分内蕴状态和外蕴状态。内蕴状态:存储在享元对象内部的,并且是不会随环境改变而有所不同的。一个享元可以具有内蕴状态并可以共享。外蕴状态:随环境改变而改变、不可共享的状态。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。单纯享元模式的结构在单纯享元模式中,所有的享元对象都是可以共享的。简单实现的结构如下图所示。抽象享元(Flyweight)角色:此角色是所有的具体享元
2021-04-19 17:21:27
145
原创 Java与模式学习笔记 —— 代理(Proxy)模式
代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式的结构代理模式所涉及的角色有:抽象主题角色:声明了真实主题和代理主题的共同接口,这样一来在任何可以使用真实主题的地方都可以使用代理主题。代理主题(Proxy)角色:代理主题角色内部含有对真实主题的引用,从而可以在任何时候操作真实主题对象;代理主题角色提供一个与真实主题角色相同的接口,以便可以在任何时候都可以替代真实主体;控制对真实主题的引用,负责在需要的时候创建真实主题对象和删除真实主题对象;代
2021-04-01 10:31:32
159
原创 Java与模式学习笔记 —— 装饰(Decorator)模式
装饰模式又名包装模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。一、装饰模式的结构装饰模式使用原来被装饰的类的一个子类的实例,把客户端的调用委派到被装饰类。装饰模式的关键在于这种扩展是完全透明的。模式的类图在装饰模式中的各个角色有:抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。具体构件(Concrete Component)角色:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个构件(Component)
2021-03-31 16:38:40
134
1
原创 android原生launcher3替换apk桌面图标
Android 8.1 去掉 Launcher3 默认给 icon 增加的白边android的新特性,目前定制后已将此功能关闭,但是chrome始终有白色的一圈,定位在chrome apk自己的android:icon资源就是如此,由此引发出与其他的apk图标风格不一致,看起来别扭,就想从launcher替换一下。参考:Android P 上Launcher3 中实现两种方式替换桌面图标由于安装和预置在显示桌面图标的代码不同,所以通过trace代码,找到了公共必走的路径:packages/apps
2021-03-30 17:41:57
2083
原创 android去抽屉式桌面默认应用排序
android 8.1高通8909平台桌面默认原生应用Launcher3,行业机不需要抽屉式样式,去抽屉式的方式网上有很多,在此不再赘述。设备配置文件大众机型配置,涵盖各种屏幕大小,根据屏幕大小匹配合适的行列,其中就有默认的排列顺序文件,由标签launcher:defaultLayoutId选择。packages/apps/Launcher3/res/xml/device_profiles.xml<?xml version="1.0" encoding="utf-8"?><!--
2021-03-25 16:09:36
685
原创 snapcam对焦失败导致无法拍照
问题:相机中,连续4、5次点屏手动对焦,会出现对焦框不消失,此时无法拍照分析:底层对焦没有返回,导致上层卡死方案:添加对焦超时机制,超时后直接判定为对焦失败Index: packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java===================================================================--- packages/apps/Snapdrago
2021-03-17 16:39:00
450
原创 snapcam gps定位图标以及与系统设置定位开关同步问题
Index: packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java===================================================================--- packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java (版本 468)+++ packages/apps/
2021-03-17 16:09:23
899
原创 Java与模式学习笔记 —— 合成(Composite)模式
合成模型模式属于对象的结构模式,又称作部分-整体(Part-Whole)模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。一、树结构和合成模式分类树结构的类图可以使用类图描述一个树结构的静态结构。下图所示的是合成模式的简略类图,同时也是一个典型的树结构的类图。可以看出,最上方出现的是一个抽象的节点,左下方的是一个树叶节点,而右下方出现的是一个树枝节点,它含有其他的节点。合成模式的实现根据所实现接口的区别分为两种形式,分别成为安全式
2021-03-15 14:07:14
441
1
原创 Java与模式学习笔记 —— 缺省适配(Default Adapter)模式
缺省适配模式属于结构模式,是适配器模式的一个特例,为一个接口提供缺省实现,子类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。一、结构缺省适配模式是一种“平庸”化的适配器模式。public interface AbstractService { void serviceOperation1(); int serviceOperation2(); String serviceOperation3();}public class ServiceAdapter implements A
2021-02-19 15:32:01
413
原创 Java与模式学习笔记 —— 适配器(Adapter)模式
适配器模式属于结构模式,把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式分为类的适配器模式和对象的适配器模式两种不同的形式。一、类的适配器模式类的适配器模式结构如上图所示,Adaptee类并没有sampleOperation2()方法,而客户端则期待这个方法。为使客户端能够使用Adaptee类,提供一个中间环节,即Adapter类。Adapter与Adaptee是继承关系,这决定了这个适配器模式是类的。目标(Target)角色
2021-02-19 14:56:48
155
原创 Java与模式学习笔记 —— 原始模型(Prototype)模式
原始模型模式属于对象的创建模式。通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多同类型的对象。一、引言Java语言的构件模型直接支持原始模型模式。所有的JavaBean都继承自java.lang.Object,而Object类提供一个clone()方法,可以将一个JavaBean对象复制一份。但是,这个JavaBean必须实现一个标识接口Cloneable,表明这个JavaBean支持复制。如果一个对象没有实现这个接口而调用clone()方法,Java编译器会抛出Cl
2021-02-19 13:53:46
253
原创 Java与模式学习笔记 —— 建造(Builder)模式
建造模式是对象的创建模式。建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。一、
2021-02-04 15:42:21
208
原创 Java与模式学习笔记 —— 抽象工厂(Abstract Factory)模式
抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。所谓产品族,是指位于不同产品等级结构中,功能相关联的产品组成的家族。如果每个抽象产品都有多于一个具体子类的话,工厂角色无法知道实例化哪一个子类。从而引入抽象工厂模式。工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构。一、结构抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。通过使用抽象工厂模式,可以处理具有相同等级结构的多个产品族中的产品对象的创建
2021-01-15 11:04:44
165
原创 Java与模式学习笔记 —— 工厂方法(Factory Method)模式
工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。一、优缺点优点:解决简单工厂模式无法对工厂类进行扩展。核心的工厂类不再负责所有的产品的创建,而是将具体创建的工作交给子类去做。工厂角色变成抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节,即允许系统在不修改具体工厂角色的情况下引
2021-01-14 16:33:04
127
原创 Java与模式学习笔记 —— 简单工厂(Simple Factory)模式
简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。一、结构简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例。工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体Java类实现。抽象产品(Product)角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或它们共同
2021-01-11 18:32:43
202
原创 Java与模式学习笔记 —— 多例(Multiton)模式
一、多例模式的特点多例类可有多个实例多例类必须自己创建、管理自己的实例,并向外界提供自己的实例二、有上限多例类两个骰子Die为例:import java.util.Random;import java.util.Date;public class Die { private static Die die1 = new Die(); private static Die die2 = new Die(); private Die() {} public static Die g
2021-01-11 16:03:57
288
原创 Java与模式学习笔记 ——模式分类
创建模式创建模式是对类的实例化过程的抽象化。类的创建模式:使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并且隐藏了这些类的实例是如何被创建和放在一起的。对象的创建模式:把对象的创建过程动态地委派给另一个对象,从而动态地决定客户端将得到哪些具体类的实例,以及这些类的实例是如何被创建和组合在一起的。常用的创建模式包括以下几种:简单工厂模式、工厂模式、抽象工厂模式、单例模式、多例模式、建造模式、原始模型模式等。结构模式结构模式描述如何将类或者对象结合在一起形成更大的结
2021-01-11 11:02:15
190
原创 Java与模式学习笔记 ——设计模式
设计原则是在提高一个系统的可维护性的同时,提高这个系统的可复用性的指导原则。“开-闭”原则(OCP, Open-Closed Priciple)里氏代换原则(LSP, Liskov Substitution Principle)依赖倒转原则(DIP, Dependency Inversion Principle)接口隔离原则(ISP, Interface Segregation Principle)组合/聚合复用原则(CARP, Composition/Aggregation Principle
2021-01-08 17:45:16
122
1
原创 Java与模式学习笔记 —— UML
一、UMLUML是统一建模语言(Unified Modeling Language),综合了很多种已经存在的面向对象的建模语言、方法和过程。对一个软件系统而言,UML语言具有以下几个重要的功能:可视化功能:可以促进对问题的理解和解决说明功能:对一个系统的说明应当通过一种通用的、精确的、没有歧义的通信机制进行建造功能:大大加快建模和系统设计的过程建文档功能:设计同时会产生系统设计文档,便于修改和维护二、UML图在所有的图中,大体上划分为结构型图和行为型图,其中,案例图、类图和序列图是最为有
2021-01-08 14:41:54
105
原创 Java与模式学习笔记 —— 单例(Singleton)模式
一、单例模式的要点:单例类只能有一个实例单例类必须自行创建自己的唯一的实例单例类必须自行向其他对象提供这一实例单例类的一个最重要的特点是类的构造函数是私有的,因此单例类不能被继承。二、三种单例类饿汉式单例类:类被加载时,已被初始化。public class EagerSingleton { private static final EagerSingleton m_instance = new EagerSingleton(); private EagerSingleton() {
2021-01-07 18:18:46
202
WifiHotpot.zip
2020-12-07
kba-170829000612_8_how_to_pass_bqb_tests_with_pts.pdf
2020-10-16
android原生设置休眠添加永不休眠选项
2020-09-08
高通平台camera HAL3添加raw12数据流传输
2020-08-26
android 5.1全按键背光
2020-08-26
android P高通平台支持google nlp定位
2020-08-26
android P静默安装、卸载patch
2020-08-26
android 5.1静默安装、卸载patch
2020-08-26
android_bluetooth_profiles_feature.txt
2020-06-30
How_to_get_GMS_apps_from_GAPPs_and_integrate_them_into_AOSP.pdf
2019-12-30
Integrate_gapps_for_Android9.0_klein_20181219.pdf
2019-12-30
SC60 LCD 屏幕旋转方向(固定)、像素密度修改_Solution_v02.docx
2019-11-08
80-p3580-1_a_cookie_for_android_build.pdf
2019-05-27
跟我一起写Makefile
2017-08-31
presentation__changes_in_android_l
2017-08-31
android multimedia framework overview
2017-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人