android 工模问题经验总结

工模问题来源有以下几块: 
1.        工厂模式apk(产线测试使用) 
2.        工程模式apkMTK开发,用于研发调试等) 
3.        Runin apk(产线老化测试) 
4.        StressTest apk 
5.        大部分暗码功能(*#06#*#8375#等) 
6.        与底层密切相关的功能(恢复出厂设置标志位等) 
下面分别对各个模块问题处理的方式做说明。

一、工厂模式apk

前文提到工模是广义上的工模,分了6块。实际上工模大多数指的是工厂模式。工厂模式代码路径如下: 
packages/apps/FactoryKitTest 
有时候工模也会代表工程模式。工程模式代码如下: 
mediatek/packages/apps/EngineerMode 
每台手机出厂前工厂都要对手机的器件做检测,工厂测试apk就是检测使用的工具。模块本身已经相对稳定。下面对常见的问题类型做一个说明。

1.1 APK本身bug

由于工模涉及到对器件的检测,若器件本身就存在问题,工模是无法解决的。因此在出现问题时首先要确认问题是否工模问题。 
比如喇叭无声的问题,可以在拨号界面拨打10086,然后打开免提,观察喇叭是否有声音发出。若也无声音发出,即可排除工模的问题。出现这种情况需要找驱动同事分析,问题确认后可将问题转出。 
在确认是工模APK本身的问题后,就需要我们软件工程师解决问题。以下面一个案例来说明: 
【问题描述】 
进入工模后GPS测试不易通过 
【操作步骤】 
进入pcbatest—测试到版本测试界面出现gps fail—下来通知栏观察 
【实际结果】 
Gps图标处于关闭状态 
【预期结果】 
Gps图标处于打开状态 
【复现概率】 
1/5 
按照gps测试的流程,是在进入工模后就要自动打开gps,然后对gps进行操作。若gps处于关闭状态则测试必然会fail。按照描述,目前存在gps概率性没打开的问题。可以初步判断为工模apk本身的问题。实际上,经过排查代码,确实发现的工模的一个漏洞。于是就有了问题分析和解决方法。 
【问题分析】 
工模在打开gps前会对gps的状态进行检查,若gps处于打开状态则不会做打开操作。Gps的状态是通过一个flag来确定。该flag状态与gps实际状态并不完全一致。 
【解决方法】 
修改flag设置相关代码,使其与gps当前状态完全一致。

1.2 由于硬件或驱动的变化而产生的问题

不同的项目,硬件是不同的,同时驱动提供的接口也会有变化。这些差异和变化对上层的其他模块往往影响不大,但对工模却有一定的影响。

1.2.1 硬件增加或减少带来的问题

889项目为例,在硬件上889相对于598增加副mic,由于889在的工模是从598上移植过来的,因此最初并没有副mic测试项。由于在生产时一定要确保每一个器件都检测到,因此需要修改工模,增加副mic测试项。(具体的增加方法是修改test_config_defaul.xml配置文件)

1.2.2 驱动的修改带来的问题

项目初期驱动也在不停的调试,驱动的修改也可能对工模造成影响。 
889项目光感为例。光感测试的原理是,由用户遮挡光感器件,系统在特定时间内检测到光感变化超过4次,及认为该项测试pass

但是由于驱动的变化,光感器件的灵敏度被调低,导致了其值变化4次所需的时间变长。由于该项测试的条件是需要在特定时间内变化4次,因此驱动修改后该项测试极易失败。这种现象产线显然是无法接受的,因为严重影响了测试的效率。

解决方法是工模针对驱动的该项调整做修改,即将“变化4次”的条件改为“变化2次”,这样可以保证该项测试的成功率,进而不影响产线测试的效率。

1.3 产线的新增需求

随着生产的进行,产线和NPI会发现工模还有许多优化的空间。因此对对工模提出需求。提出这些需求的目的主要是提高产线效率和提高工模测试的准确性。由于这些属于需求类问题,因此优先级相对于bug类问题较低。产线提出这些需求后需要与研发端一起评估,若研发端认为该需求有导入的意义,就需要安排导入。

1.3.1 提高产线效率类需求

下面以一个案例来说明。

【需求描述】将T卡、SIM卡等测试整合到一个测试界面。

工模中的T卡、SIM卡等测试完全可以通过软件来判断。优化前的状态是这些测试分别都有单独的测试界面,需要人工点击passfail按钮来进入下一项。优化后的状态是这些测试项的测试结果集中显示在版本测试界面,用户一眼就可以看出哪些测试项fail,哪些测试项pass。很明显优化后的状态对产线的效率有提升。

1.3.2 提供工模测试准确性类的需求

下面以一个案例来说明。

【需求描述】在工模测试中增加防呆功能

工模中的部分测试项(LCDspeaker等)需要人工判断测试是否pass。比如LCD需要人观察屏幕是否有坏点;speaker需要人听喇叭是否有声音发出。还有部分测试项系统可以判断成功和失败。比如T卡、SIM卡、耳机是否已插入等。

防呆的意思就是若软件判断某项测试失败(T卡未插入等),或者某些测试项的前提条件未满足(耳机未插入等)就不允许该测试项通过。

这样做可以避免工人操作(点击pass按钮),导致本应fail的测试结果变为pass,进而导致不良品流入市场。

因此该类需求对产线的生产有重大的意义,需要导入。

二、工程模式apk

上文提到过该apk的代码路径为:

mediatek/packages/apps/EngineerMode

apkMTK开发。该apk主要是供内部研发调试用。该apk上层使用的较少,驱动和硬件同事使用的较多。上层可以通过该apk中的一个选项调出mtklogger,以抓取log。然而mtklogger是一个独立的apkmtk并没有提供我们代码,EngineerMode只提供mtklogger一个入口。

目前该模块的问题主要分为:网络设置相关问题以及硬件报出的问题。

2.1 网络设置相关问题

该类问题的来源主要是移动的需求。若是修改界面显示上的问题可以评估其风险并自行修改。若修改涉及到与modem模块的交互,建议提交e-servcice申请patch。因为modem模块是手机中的核心的模块,同时也很复杂,修改的风险需要做充分的评估。

2.2 硬件报出的问题

以之前硬件报出的某个电压显示异常为例。正常显示的结果是某个器件的电压值,问题的现状为该电压值显示了2遍。硬件同事不确定该问题是显示异常还是电压本事出现了异常,因此需要该模块负责人确认。

由于上层同事对该模块中显示的各项数据代表的含义并不理解,同时电压的显示也涉及到底层诸多借口,高效的处理方式是提交e-service,由MTK来判断问题的原因。

三、Runin apk

Runin apk是工厂在做老化测试时使用的工具。一轮老化测试的周期一般为2小时。其中包括播放视频、播放音频和读写内存等操作。该apk经过不断的完善,该apk已趋于稳定,问题报的也较少。下面以一个597的案例来进行说明:

【问题描述】在做老化测试时出现关机

【复现步骤】做老化测试--观察

【实际结果】测试中手机关机

【预期结果】不出现关机

【问题概率】30%

【备    注】已提供log

经过与工厂沟通,出现问题的机器重测依然可以复现问题。经过分析log,发现底层温度超过了59度。而上层的机制是温度超过59度,手机就会关机。

由于该apk是之前项目使用的相同,然而之前项目手机温度却不会达到59度,因此可以确定是不同机器的差异导致的。

由于问题可以稳定复现,经过硬件可以驱动同事的分析,温度达到59度的问题很难解决,因此采用软件解决的方案,即降低runin的标准,减少cpu测试的时间。

由于runincpu的测试时间有明确的要求,因此采用软件解决的方式实际上是违背要求的,所以软件修改时一定要项PM做说明。

四、StressTest apk

apk是要求内部做压力测试时使用的apk。该apk相关问题的处理工作已经比较熟悉。在此再次做一下简单的说明。

apk需求提出时,需求本身比较模糊。各项的实现方式也与实际情况有较大的出入。因次前期时间主要花在明确需求上。这个过程需要测试同事一起评估。

由于该apk是内部使用,同时并不局限与某个项目,因此该apk的相关问题的优先级可以放低,优先处理项目上的问题。

五、大部分暗码功能

目前工模相关的主要暗码功能如下:

序号

指令

功能

1

####1111#

启动工厂模式apk

2

*#*#3646633#*#*

启动工程模式apk

3

####3333#

启动mtklog

4

####3300#

*#*#3646633#*#*

5

*#06#

查看imei

6

####2222#

查看sn

7

####7777#

恢复出厂设置

8

*#8375#

查询版本号

9

####5993#

查询外部版本号

10

*#6688#

启动runin

暗码的添加主要是修改以下2个文件:

889lenovo/framewrok/../../SpecialCharSequenceProxy.java

598package/apps/Dialer/../../ SpecialCharSequenceProxy.java

六、与底层密切相关的功能

目前与底层密切相关的功能主要有2部分:恢复出厂设置标志位功能和组合键进工模功能。

恢复出厂设置标志为功能的原理是向NV中写入标志位,然后开机通过判断标志位的值来决定是否恢复出厂设置。工具端也是通过修改标志位的值来做恢复出厂设置操作的。

组合键进工模是在组合键按下后向驱动的TP文件中写入一个值,开机后通过判断写入的值来启动工模。

这两个功能是移植bd2的功能。代码提交记录可以通过git查看。由于涉及到工具端和驱动,若发现问题可以向相关同事咨询。也可以咨询bd2的同事。由于这两个功能改动文件较多,建议后续有时间仔细研究一下代码流程,以便出现问题能快速解决。

展讯工模特点简介

展讯工模目录如下:

huaqin/../../package/apps/ValidationTools2/

下面主要介绍一下与MTK工模的区别。

该工模也是一个独立的apk,不过由展讯开发。因此若是在维护中遇到平台行问题,经过分析依然没有思路的话可以提交展讯cq

展讯开发的工模是面向其所有的客户,之后又添加了许多内部的需求,如防呆、自动跳转等。这部分出现的问题需要华勤内部解决。

若要判断某个发问题是否是由于研发自己修改而导致的,可以使用展讯原始单独代码编译apk,然后push到手机中,看问题是否还存在。

展讯代码路径如下:

package/apps/ValidationTools2/

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
EMC(电磁兼容性)是指电子设备在同一电磁环境下可以相互工作,而不受互相干扰的能力。在EMC设计过程中,电感阻抗的不足是一个常见的问题。 电感阻抗不足指的是电感元件在特定频率下的阻抗值较低,无法提供足够的阻抗来抑制电磁干扰。这可能导致设备发生电磁兼容性问题,如干扰信号的传输、设备失效或产生噪音等。 电感阻抗不足的原因可能包括以下几个方面: 首先,电感元件的设计参数不合理,如选取不合适的线圈尺寸、线圈材料或线圈结构等。这会导致电感元件的自感值不足,从而影响到其阻抗值。 其次,电感元件所处的电路环境可能会影响其阻抗。例如,在高频率下,电感元件可能会出现谐振现象,导致其阻抗降低。 此外,电感元件与其他元件的布局、连接方式和电路设计等也可能对电感阻抗产生影响。如电路板的布线不合理、接地方式不当等都会导致电感阻抗不足。 为解决电感阻抗不足的问题,可以采取以下措施: 首先,合理设计电感元件的参数。根据具体应用场景选择合适的线材、线圈尺寸和电感元件结构等,确保其满足要求的阻抗值。 其次,在电路设计和布局中注意电感元件的位置和连接方式。合理安排电路板的布线,避免产生环路,同时正确连接地线,减小电磁干扰的可能性。 此外,进行电磁兼容性测试和优化,可以通过测量电路中的信号传输情况和电磁辐射水平等来评估电感阻抗是否足够,同时根据测试结果进行必要的优化设计。 总之,电感阻抗不足是EMC设计中常见的问题,通过合理设计电感元件参数、优化电路布局和连接方式,以及进行必要的测试和优化可有效解决这一问题,提高设备的电磁兼容性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值