�@UI�R���|�[�l���g�𑀍삷�邽�߂̃��\�b�h��UiObject�N���X�ɂ܂Ƃ߂��Ă��܂��B�ȉ��f��\�I�Ȃ��̂ɂ��Đ������܂����A���ڍׂȏ���API���t�@�����X���Q�Ƃ��Ă��������B
�@setText()���\�b�h�́A�e�X�g�����s����[���̌���ݒ肪�p��ŁA���AIME���p����̓��[�h�łȂ��ƁA�z��Ƃ͈قȂ镶���ݒ肳��邱�Ƃ�����܂��B���͂ł���e�L�X�g������ASCII�͈̔͂Ɍ��肳��܂��B
�@�}���`�o�C�g�������������@�Ȃǂɂ��ẮA���p�҂ŏЉ�܂��B
�@uiautomator�ɂ�����e�X�g�ł́AJUnit 3�Œ���Ă���uassertEquals(expected, actual)�v�Ȃǂ̃A�T�[�V�������\�b�h��p���Č����܂��B
�@UI�R���|�[�l���g�̑����Ȃǂ��擾���郁�\�b�h��UiObject�N���X�ɗp�ӂ���Ă��܂��B���̃��\�b�h�ɂ��擾����UI�R���|�[�l���g�̑����iactual�j���A���ҁiexpected�j�ʂ�ł��邩�ǂ������AassertEquals()���\�b�h�Ō����܂��B
�@UiObject�N���X�ɗp�ӂ���Ă���A��ȑ����擾�n�̃��\�b�h�͈ȉ��̒ʂ�ł��B
�@�e�X�g�����s����[����Android 4.2�ȏ�̏ꍇ�́A�uUiDevice�v�N���X��setOrientation����n�܂郁�\�b�h���Ăяo�����ƂŁA�[�����w�肳�ꂽ�����ɉ�]�����邱�Ƃ��ł��܂��B��萳�m�Ɍ����ƁA�[�����w�肳�ꂽ�����ɉ�]�������̂悤�ɁA��ʂ̌������ω����܂��B
�@setOrientationNatural()�́A�[�����u���R�Ȍ����v�Ɏ������Ƃ��ɉ�ʂ̌������������Ȃ�悤�ɁA��ʂ���]���܂��BsetOrientationRight()��setOrientationLeft()�́A�[�����u���R�Ȍ����v����E�܂��͍��ɉ�]�������Ƃ��ɁA��ʂ̌������������Ȃ�悤�ɉ�ʂ���]���܂��B
�@�u���R�Ȍ����v���ǂ�������ԂȂ̂��͒[���ˑ��ł����AsetOrientationNatural()���Ă��getDisplayHeight()�EgetDisplayWidth()���\�b�h���Ăяo�����ƂŁA�u���R�ȏ�ԁv�ɂ������ʂ̍����ƕ����擾�ł���悤�ɂȂ��Ă��܂��B
�@�܂��AfreezeRotation()���\�b�h�ŃZ���T�[�ɂ���ʂ̎�����]���ɂł��܂��B�����unfreezeRotation()���\�b�h�ʼn����i�L���Ɂj�ł��܂��B
�@�����̃��\�b�h���g���ɓ������ẮA�ȉ��̓_�ɒ��ӂ��Ă��������B
�@�e�X�g�����s����[����Android 4.2�ȏ�̏ꍇ�́A�uUiDevice.takeScreenshot()�v���\�b�h���Ăяo�����ƂŁA�C�ӂ̃^�C�~���O�ʼn�ʂ̃X�N���[���V���b�g���B�e�ł��܂��B
�@takeScreenshot()�̈����ɂ́A�ۑ���̃p�X������File�I�u�W�F�N�g���w��ł��܂��B
// �[�������� /mnt/sdcard/Pictures/ �f�B���N�g���� // screenshot.png �Ƃ����t�@�C�����ŃX�N���[���V���b�g��ۑ�����B File filePath = new File("/mnt/sdcard/Pictures/screenshot.png"); getUiDevice().takeScreenshot(filePath);
�@�Ȃ��A�X�N���[���V���b�g�̕ۑ���́A�e�X�g�����s����[�������̃X�g���[�W�ɂȂ邽�߁A�ォ��X�N���[���V���b�g��[��������o���K�v������܂��B���̂��߂ɂ�adb pull�R�}���h�𗘗p���܂��B
$ adb pull �o�[�����ɕۑ������X�N���[���V���b�g�t�@�C���ւ̃t���p�X�p
�@�o�[�����ɕۑ������X�N���[���V���b�g�t�@�C���ւ̃t���p�X�p�ɂ́A��L�̗�ł����/mnt/sdcard/Pictures/screenshot.png���w�肵�܂��B
�@uiautomator�Ńe�X�g�����s����ɂ́A�e�X�g�X�N���v�g���r���h���ē�����jar�t�@�C�����A�e�X�g�����s����[������/data/local/tmp/�f�B���N�g���ɃC���X�g�[���i�]���j���Ă����K�v������܂��B�e�X�g�����s�������[����USB�P�[�u���ȂǂŐڑ����Aadb�ŔF�����ꂽ��Ԃɂ��Ă����Ă��������B
�@�܂��A�[����G�~�����[�^�[���ڑ����Ă���ꍇ�́A�C���X�g�[�����ƃe�X�g���s���̃R�}���h���C���Ɉȉ��̃I�v�V����������lj�����K�v������܂��B
�@�����Ło�V���A���ԍ��p�́A�e�X�g�����s�������[���̃V���A���ԍ���\���܂��B�ڑ����Ă���[���̃V���A���ԍ���adb devices�R�}���h�����s����ƒm�邱�Ƃ��ł��܂��B
�@�ȉ��ł́A�uuiautomator�e�X�g�v���W�F�N�g�̃Z�b�g�A�b�v�v�̏͂ŗ�ɏo����UiautomatorSample�v���W�F�N�g���ɁA�e�X�g���r���h�E�C���X�g�[�����A���s������@��������܂��B
�@Apache Ant��build�^�[�Q�b�g�����s���܂��B
$ cd uiautomator $ ant build
�@�r���h����������ƁA�ubin/�v�f�B���N�g����UiautomatorSample.jar�Ƃ������O��jar�t�@�C������������܂��B����jar�t�@�C������.jar��菜���������́u�e�X�g�v���W�F�N�g���쐬�����v�̏͂�android create uitest-project�R�}���h�����s�����Ƃ���-n�I�v�V�����Ŏw�肵�����̂ƂȂ�܂��B
�@Apache Ant��install�^�[�Q�b�g�����s���܂��B
$ ant install
�@adb�R�}���h�ڎ��s���ăC���X�g�[�����邱�Ƃ��ł��܂��B���̏ꍇ�́A�ȉ��̃R�}���h�����s���Ă��������B
$ adb push bin/UiautomatorSample.jar /data/local/tmp/
�@�����ŁAbin/UiautomatorSample.jar�̉ӏ��ɂ́A�r���h���ɐ�������jar�t�@�C���ւ̃p�X���w�肵�܂��B
�@�ȉ��̃R�}���h�����s���܂��B
$ adb shell uiautomator runtest UiautomatorSample.jar -c com.nowsprinting.hellotesting.uiautomator.CustomerDetailTest
�@�����ŁAUiautomatorSample.jar�̕����ɂ́A�e�X�g�Ώۃf�o�C�X�ɓ]������jar�t�@�C�����݂̂��w�肵�܂��B�p�X�͎w�肵�Ȃ��_�ɒ��ӂ��Ă��������B
�@-c�I�v�V�����ɂ́A���s�������e�X�g�P�[�X�iUiAutomatorTestCase�̃T�u�N���X�j�̃N���X����FQCN�iFully Qualified Class Name�j�Ŏw�肵�܂��B���̃I�v�V�����́A�e�X�g�����s����[����Android 4.3�ȏ�̏ꍇ�͏ȗ����邱�Ƃ��ł��܂��B�ȗ������ꍇ�A�e�X�g�v���W�F�N�g��jar�t�@�C���Ɋ܂܂��S�e�X�g�P�[�X�����s����܂��B
�@�T���v���̃e�X�g�X�N���v�g�����s����ꍇ�́A�e�X�g���s�ɐ旧���āA�e�X�g�Ώۃf�o�C�X��ŁA�T���v���A�v���N������̉�ʁi�ڋq�ꗗ��ʁj��\�������Ă����Ă��������B
�@�e�X�g���s�̂��߂ɓ��͂���R�}���h�́A�R�}���h���C�������̒l�Ȃǂ��܂߂āA��L�R�}���h��Ɠ����ł��B
�@uiautomator�R�}���h�̈����ɂ��Ă̏ڍׂ́Auiautomator�R�}���h�̃}�j���A�����Q�Ƃ��Ă��������B
�@����́Auiautomator�ɂ��āA��{�I�ȂƂ����������܂����B�Œ���A����̋L���̓��e�𗝉����Ă����A�e�X�g�X�N���v�g�������n�߂邱�Ƃ��ł���ł��傤�B
�@����́A�m���Ă����ƕ֗��ȁAuiautomator�̉��p�I�ȃg�s�b�N���Љ�܂��B
�O�R ����
�e�X�g������������iSTAR�j�^Android�e�X�g��
NTT�\�t�g�E�F�A������ЋΖ��B���N�O���Android�A�v���P�[�V�����J���ɂ������n�߂��̂���|���ɁAAndroid�ɂ����鎩���e�X�g�ɋ��������悤�ɂȂ�BAndroid�֘A�v���W�F�N�g�ɑ���Z�p�x���Ɩ��Ɍg��Ȃ���AAndroid�����̃e�X�g�c�[���������ƍL���g����悤�ɂȂ邱�Ƃ�����āA�u���O�ɂċZ�p���M��
Blog�Fsumio�̋Z�p����
Twitter�F@sumio_tym
Copyright © ITmedia, Inc. All Rights Reserved.