您当前的位置:首页 > 互联网教程

android 怎么设置锁屏界面可以横竖屏切换

发布时间:2025-05-13 08:04:30    发布人:远客网络

android 怎么设置锁屏界面可以横竖屏切换

一、android 怎么设置锁屏界面可以横竖屏切换

Android横竖屏要解决的问题应该就两个:

1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:

"unspecified":默认值由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.

"landscape":横屏显示(宽比高要长)

"portrait":竖屏显示(高比宽要长)

"behind":和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)

"sensor":有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。

"nosensor":忽略物理感应器,这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。

也可以在Java代码中通过setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)来设置。

如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。可以通过以下方法来切换布局:

1)在res目录下建立layout-land和layout-port目录,相应的layout文件不变,比如main.xml。layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管,模拟器会自动寻找。

2)通过 this.getResources().getConfiguration().orientation来判断当前是横屏还是竖屏然后来加载相应的 xml布局文件。因为当屏幕变为横屏的时候,系统会重新呼叫当前Activity的onCreate方法,你可以把以下方法放在你的onCreate中来检查当前的方向,然后可以让你的setContentView来载入不同的layout xml.

1 if(this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_LANDSCAPE){

2 Log.i("info","landscape");//横屏

4 else if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){

5 Log.i("info","portrait");//竖屏

在onConfigurationChanged()方法中也可以检测拥有硬键盘的键盘状态

1//检测实体键盘的状态:推出或者合上

2 if(newConfig.hardKeyboardHidden==Configuration.HARDKEYBOARDHIDDEN_NO){

3//实体键盘处于推出状态,在此处添加额外的处理代码

5 else if(newConfig.hardKeyboardHidden==Configuration.HARDKEYBOARDHIDDEN_YES){

6//实体键盘处于合上状态,在此处添加额外的处理代码

2.重新载入问题。如果不需要从新载入,可以在AndroidManifest.xml中加入配置 android:configChanges="orientation|keyboardHidden",配置 android:configChanges的作用就是如文档所说的:Specify one or more configuration changesthat the activity will handle itself. If not specified, the activity will berestarted if any of these configuration changes happen in the system。这样在程序中Activity就不会重复的调用onCreate()甚至不会调用onPause、onResume.只会调用一个 onConfigurationChanged(Configuration newConfig)。如果需要重新载入,则不需要做任何修改。不过如果需要在重新载入过程中保存之前的操作内容或数据,则需要保存之前的数据。然后在 activity的onCreate()中取出来。当然,如此就不能设置android:configChanges()了,否则就不会调用 onCreate()方法。

如果要彻底禁止翻转,可以设置android:screenOrientation的属性为nosensor,如此就可以忽略重力感应带来的麻烦了。不过在模拟器上不管用,在真机上是正确的。android:screenOrientation="portrait"

则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。

android:screenOrientation="landscape",为横屏显示。

这里提一个小知识,Android模拟器中,快捷键"Ctrl+F11/F12"可以实现转屏

二、Android 7.0有哪些特性

在CM等一众第三方系统中,早已支持便捷地修改壁纸、图标和系统颜色。在商店和论坛中,也能找到不少优质的皮肤主题。

而当我们提到原生Android,似乎总是长着一张固定的脸。实际上,在Google自家的AOSP(即Android开源项目)中,早已内置了主题管理。

而在Android M的开发者预览版中,也加入了主题管理器(可惜被需要Root和特定方式才能激活)。既然系统内的皮肤主题框架早已搭建好,那就只等Google在Android系统中放出啦。

在2月26日,Google Map的官方Twitter发布了一条介绍视频,其中的展示机Nexus 6P的系统界面中,似乎看不到底部的应用抽屉按钮了。发现问题的同学也开始集体留言质问:‘WHERE IS THE APP DRAWER?!?!’

而在之前也确实有传闻爆料:在新版Android N中,或许会将应用抽屉的设计去除,选择采用iOS和MIUI的应用呈现方式,即全部在桌面首页中展示。

去除二级菜单的做法,会带来更加凌乱的桌面,还是更有效率的操作体验?似乎很难定论,但作为Android玩家,大可选择Nova启动器等优秀的第三方桌面,而不必担心我卓药丸。

在Android M的开发者预览版中,Dark Mode夜间模式曾短暂地出现过,而在正式版中又被砍去。

而最新的Android N泄露图中,黑色背景的右图也表示着:夜间模式回归Android了。

而更加值得期待的是,Google已经放出了夜间模式的开发代码,开发者可以轻松地为自己的应用设定‘暗色主题’。也许今后只需轻按‘夜间模式’的按钮,从系统到各个应用,都能直接更换成夜间模式。

这一改变,不仅对于越来越多AMOLED屏幕手机而言,是省电的好方法。对于经常深夜玩手机的同学来说,似乎也可以和刺眼的白光说再见了。

在LG和三星都推出了‘分屏模式’后,Google在Android N中加入分屏功能也是众望所归了。同样的,在上一个版本Android M中,分屏模式也被隐藏起来,需要特定方式才能激活。

不负众望,来自Google的Pixel C团队在接受Reddit AMA论坛访谈时,确认了‘split screen is in the works’。

而分屏多任务,似乎在Android平板上也更加适用。值得一提的是,该团队也宣称Android系统的平板,在Android N中将会更加好用,而不仅仅是将应用界面拉升就够了。

但对于Chrome OS的联动猜想、DPI切换和和界面的调整,似乎只能等Google I/O那天,才知道答案。

在三星公布的文档中,我们发现三星在Android N中,采用了系统自带的触控笔接口,而不再使用原先的S PEN专属接口。

而在Android 5.0(开始支持节电助手)之前,三星关闭了自家的节电模式接口。在Android 6.0(开始支持指纹识别)之前,又关闭了自家的指纹识别接口。而在Android 7.0公布之前,三星又再一次关闭了自家的触控笔接口,这……

Doze省电模式首次出现在Android M中,其省电原理是在设备休眠时,关闭关闭应用后台,以达到省电的效果。

在亲身体验后,Doze模式确实发挥了很好的效果,起码待机的时候不掉电了。但在目前这一功能,在操作体验和用户自定义方面,却有些过于简单了。

所以直到今天Android 6.0,我依然选择绿色守护等第三方应用,去实现控制后台应用耗电的问题。但Root终归有风险,而Android N也有理由提供一个更好用的Doze省电模式。

在设计上,似乎能探寻的蛛丝马迹,则是一张Android N的通知栏模拟图,国外媒体Android Police在看到开发样机图后,大致模拟出的新版界面截图。

根据爆料,左图通知栏目前已开始尝试承载更多的信息量,长按后即可查看通知详情。而在右图显示的快速设置页面,将快捷按钮铺满并支持分页,而不像之前只支持固定数量的快捷按钮。

随着Nexus 5X和Nexus 6P的发布,Google终于开始为Android提供指纹的支持。在Android 6.0中,关于指纹的接口也正在逐步完善。

在目前看来,似乎指纹最常用也仅限于Play Store和锁屏应用中。期待在Android N中,能通过指纹解锁完成更多的事情,在iOS的Touch ID上,有许多值得借鉴的场景。也许之后Androidi用户能通过指纹,便捷地查看Google相册中的隐私图片,或者直接解锁启动私人应用。

我们知道,Google正尝试着于打造一款,不需要额外硬件的头戴式VR设备。

而反观目前市面上大部分VR产品,软件部分的开发似乎都与Android系统多少有些联系,也许Google自家的VR设备也需要Android的支持。

所以我们有理由相信,Google会为新版本的Android系统,在VR方向上提供更多系统层面的支持。

Now on Tap作为Android M的重磅功能,在去年收获了业界好评。大致功能则是基于不同情景而直接提供对应信息,通过识别你正在运行的app中的内容,提供针对性的建议和资料。

比如在网上聊天时,当聊到某部电影时,只需上滑Home键,关于电影的所有信息就能直接呈现。

而在Android N中,我们期待它能发挥更大用处。毕竟Now on Tap中‘上下文感知’和‘基于情景’都是是人类智能的重要能力。

也许之后当我们打开相机,它就能为你找寻镜头中包含的关键信息。而不仅限于设定日历提醒,或者帮你搜索维基百科那么简单。

三、Android认证包括什么android认证只包括GMS认证吗

GMS认证,一般要求我们提供CTS, XTS, Verify三份测试报告,如下图:

ctsVerifierReports: Verify测试报告

CTS(全称“Compatibility Test Suite”,即“兼容性测试包”)的认证,这是一组用以测试的.apk程序之类的集合,它能够在官网()上面免费下载。CTS的目的就是让Android设备(如:手机)开发商能够开发出兼容性更好的Android设备。 GTS:

GMS全称为Google Mobile Service,即谷歌移动服务。GMS是Google开发并推动Android的动力,也是Android系统的灵魂所在。 Verify:

CTS都是指令自动测试,但是还有一些测试是必须手动完成的,这个是verify测试就是手动测试。

GMS认证的视频文件—android-cts-media-1.0.zip:

新建test文件夹(内有bbb_full,bbb.short,copy_media.sh,make_zip.sh,README.txt),手机需拷贝android-cts-media-1.0.zip解压到test目录中(在不支持存储空间的情况下,使用T卡替代)

进入android-cts-media-1.1目录下,执行:

./copy_media.sh all,或./copy_media.sh

就可以把视频复制手机上了,非常的方便和快。 android-cts文件

解压android-cts-4.4_r1-linux_x86-arm.zip CtsDeviceadmin.apk

此apk位于(android-cts epository estcases)目录下 android-gts文件

解压gts-2.1_r1.zip CtsVerifier.apk

(解压android-cts-verifier-4.4_r3-linux_x86-arm.zip)

(官网)

Need insert empty SD card Insert valid SIM card设置手机语言为英语:进入Settings–Language&input–Language设为English(UnitedStates)输入法默认使用android输入法,Settings–Language&input–Default—English(US)手机软件需是User版本(请用adb remount命令查看),需写IMEI(请按*#06#查看)、MAC码(settings–about phon–statu–wlan mac address)去掉锁屏(Settings–Security–Screen lock–none)设置屏幕超时为最长时间30分钟(Settings–Display–Sleep–30minutes)进入Settings–Date& time–取消Automatic date&time勾选,取消Automatic time zone勾选, Select time zone,选择GMT-8:00 Pacific Time(注:当实行夏令时后,Pacific Tim会变成GMT-7:00)打开developer options,Settings–About phone–快速点击Build number 7次 Settings–developer options–stay awake and usb debugging allow mock locations勾选打开WIFI并连接AP(需要可翻墙的网络,因为测试过程中需要连接google的服务器)打开蓝牙,Settings–Bluetooth打开GPS,Settings—Location—开启打开数据连接,下拉状态栏—选中Data on安装CtsDeviceadmin.apk

可以复制到sd卡上再安装,也可以使用命令安装:adb install‘/home/android/CTS_hexiaoming/hexiaoming/CtsDeviceAdmin.apk’将test文件夹复制到sd卡上,也可以使用命令:

adb push‘/home/android/CTS_hexiaoming/hexiaoming/test’/sdcard/test

(或者进入到android-cts-media-1.1目录下,执行:

./copy_media.sh all,或./copy_media.sh) Settings—Security–Device administrators–勾选上 device administrators列表前三个选项,最后一个不勾选运行时让屏幕是home主界面上运行过程中不要触摸屏幕及按钮

- While a device is running tests, it must not be used for any other tasks

- Before start CTS, device at the home screen

- Do not press any keys on the device while CTS is running

- Make sure the AP is usability and connectedly.

- Make sure USB cable is stability

2.打开终端,进入android-cts/tools目录,输入./cts-tradefed.终端显示:

(如果没有这行,说明设备没有和PC连通)

3.输入run cts–plan CTS,开始测试CTS

4.测试完成后会自动生成xml报表,在anroid-cts/repositZ" target="_blank" class="keylink">vcnkvcmVzdWx0c8S/wrzW0Ch0ZXN0UmVzdWx0LnhtbCkuPGJyIC8+DQo1LkxPR9DFz6LU2sS/wrzPwqO6KGFuZHJvaWQtY3RzIGVwb3NpdG9yeWxvZ3MpPC9wPg0KPHA+PHN0cm9uZz7Su7Djx+m/9qOsQ1RTsuLK1NK7tM6yu8TcyKuyv82ouf2jrMTHw7TI57rO1ruy4srURmFpbM/uwcujvzwvc3Ryb25nPjwvcD4NCsrWtq/Q3rjEdGVzdFJlc3VsdC54bWyjrMq508NnZWRpdLTyv6q4w87EvP4oZ2VkaXQgdGVzdFJlc3VsdC54bWwpoaMNCjxwPtGh1PGy6dXSy9HL92ZhaWxlZM/uo6zM5ru7zqpub3RFeGVjdXRlZKOsyLu687GjtOajrMjnzbyjujxiciAvPg0KPGltZyBhbHQ9"这里写图片描述" src="" title="/"/>

重新输入./cts-tradefedcts-tf->run cts–continue-session session_id

PS: session_id可以通过在CTS命令行里输入l r查看到。比如输入l r查看到的session_id为0那就应该在CTS的命令行输入 run cts–continue-session 0这样就会只会继续测试那些之前fail的项而不会去测试那些已经pass的项

对于有的测试项,我们没有环境,过不了。但是我们可以确定此项可以pass,那么我们可以直接修改报告:

我们在改报告的时候,参考要修改的测试项的前一个pass项和后一个pass项,对应修改就可以了,非常的简单。修改后,我们再让其重新跑一下,生成新的测试报告就可以。

run cts-c android.app.cts.SystemFeaturesTest-m testSensorFeatures

1.CTS 4.0的命令和CTS 2.3/2.3完全不同,所以在进入CTS后,先输入help看看命令的格式和意思。

2.正常测试一次CTS4.0,需要6-9小时。所以,测试时请接上电源,并尽量在晚上测试,不会影响设备的使用

3.CTS是自动化测试,测试过程中不需要人的干预。如果在上班时间,每1-2小时观察下即可

4.CTS4.0在测试过程中断开、终止都不会生成测试报告,所以,测试前要保证USB连接稳定和平台设置

5.CTS执行run cts–plan CTS时,会搜索android-cts/repository/results中的历史报表文件夹。如果文件有很多,启动速度会非常慢。所以,请定期清理results文件夹中的历史报表(直接删除报表文件夹即可)

有时,复制会导致一些权限问题,这时,我们可以运行sudo chmod 0777 filename来提高权限。 CTS测试快速入门—-MTK—非常重要

android-gts文件(解压gts-2.1_r1.zip)

XTS测试和CTS是一样的,只是要把命令稍微对应的改一下就可以了:

run xts–continue-session session_id

run xts-c android.app.cts.SystemFeaturesTest-m testSensorFeatures

CtsVerifier.apk—-(解压android-cts-verifier-4.4_r3-linux_x86-arm.zip)

这个是手动测试,我们只需要安装此apk,然后按照说明一步一步操作就可以了。最后,我们导出报告。

这个测试还是有测试顺序的,一般Policy Serialization Test这个测试项最后一个测试,因为此项会导致后面的Keyguard Password Verification项过不了。我们可以一开始就测试Keyguard Password Verification,最后一个测试Policy Serialization Test。 Camera的测试项,我们要一个一个测试,不能直接按pass直接过,就是因为测试的报告里有这些测试项的详细信息。在测试Accelerometer Measurement Tests项前,我们在settings—Sound—Default notification sound选择一个默认值,否则有可能因为此没有设置,apk会crash,此项过不了。 Streaming Video Quality Verifier测试项中,RTSP的三项,有wifi的话可以过,但是HTTP PROGRESSIVE的三项是过不了的。也就是说Streaming Video Quality Verifier测试项是过不了的,这是正常的现象。

USB Accessory Test有时候执行命令,是没有效果,这个有可能是电脑的原因,换台电脑多试几次。

USB Accessory Test in CTS Verifier, Please follow up below steps to test this item:

1) Install CTSVerifier.apk to the phone device.

2) Add“18d1:2d01” device to/etc/udev/rules.d/51-android.rules, and restart

About add“18d1:2d01” device to/etc/udev/rules.d/51-android.rules,

Please hlep to refer SOP part of“Setup CTS Environment(3/4)”

New a udev configuration file for the usb and change the mode

sudo touch/etc/udev/rules.d/51-android.rules

sudo chmod a+rw/etc/udev/rules.d/51-android.rules

Add the below string in 51-android-rules to setup the USB

SUBSYSTEM==”usb”, ATTRS{idVendor}==”0bb4”, ATTRS{idProduct}==“0c03”, MODE=”0666“

Restart the udev service to update the configuration

After connecting the Android device to the PC, type lsusb and you should see the below string if the connection is success:

Bus 002 Device 002: ID 0bb4:0c03 High Tech Computer Corp.

3) Connect the phone to a linux pc, with adb enabled

4) Run cts-usb-accessory on linux PC, wait until“Found android device in accessory mode(18d1:2d01)

5) Device will pop a prompt to cts-verifier, start the CTS Verifier and run USB Accessory test.

6) make sure no other devices connnect to the PC.

Bluetooth Test测试项,比较需要时间和耐心,要慢慢来操作。特别是BLE Client Test测试项更是如此。我们测试此项时,可以先记下mac地址(可以写一些简单的mac地址,如(11:11:11:11:11:11) mac地址要区分大小写,这个也要注意),这是因为此项一般要测好多次才能pass,每次都要求从头开始,每次都要输入mac地址。根据测试经验,一般4.BLE Reliable Write这个才是此测试能否通过的关键,我一般是4.BLE Reliable Write在倒数第二步来测试,并且多输入几次信息(请不要每次只输入一个字母),直到另一部手机的Waiting on reliable write from client测试项显示绿色,才最后执行8.BLE Client Disconnect就可以通过此项测试。

首先在cts verifier中随便进行一项测试,打开设置中的备份和恢复,点击 generate test data->ok

adb shell bmgr transport android/com.android.internal.backup.LocalTransport

adb uninstall com.android.cts.verifier

adb install F:CTS4.0CTS4.0.3_r2apk4.0.3_r2CtsVerifier_4.0.3_r1.apk

测试完,我们使用adb push命令将测试报告导出就可以了。

adb pull/sdcard/ctsVerifierReports/home/android/tmp

测试结果表头的问题,在文档中要求CTS和GTS中的设备信息的Build Fingerprint中的签名文件类型是release-key,也就是说,我们测试的软件版本的签名要使用release-key,如下图所示:

在文档中要求GTS项的测试结果中的Properties属性应该包括ro.com.google.gmsversion、ro.com.google.clientidbase,并且有的客户对ro.com.google.clientidbase的名字是有要求的。如下图,就缺少ro.com.google.clientidbase的项。

给高通提case,给MTK提eservice,因为这个一般自己能解的比较少,主要还是要靠高通和MTK来解。慢慢积累自己的fail项库慢慢积累自己处理fail项的能力