当前位置: 编程技术>移动开发
本页文章导读:
▪IMF简介-一 IMF简介-1
Input Method Framework目录 IMF简介 相关代码位置 展开 IMF简介 相关代码位置 展开编辑本段IMF简介从SDK 1.5版本以后,Android就开放它的IMF(Input Method Framework).........
▪ 写在20110609:容易的MonKey测试 写在20110609:简单的MonKey测试
Monkey测试很形象,说的就是这个测试像猴子一样在你的应用程序上乱点,模拟的是用户点击的操作。瓶颈:解锁。Monkey测试步骤1.连接手机,保持手机已连接.........
▪ IMF简介-二 IMF简介-2
InputManager由UI控件(View,TextView,EditText等)调用,用来操作输入法。比如,打开,关闭,切换输入法等。它是整个输入法框架(IMF)结构的核心API,处理应用程序和当前输入法的交.........
[1]IMF简介-一
来源: 互联网 发布时间: 2014-02-18
IMF简介-1
Input Method Framework
目录
IMF简介
相关代码位置
展开
IMF简介
相关代码位置
展开
编辑本段IMF简介
从SDK 1.5版本以后,Android就开放它的IMF(Input Method Framework),让我们能够开发自己的输入法。
一个IMF结构中包含三个主要的部分:
input method manager:管理各部分的交互。它是一个客户端API,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务。
input method(IME):实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。
client application:通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。
InputManager
由UI控件(View,TextView,EditText等)调用,用来操作输入法。比如,打开,关闭,切换输入法等。
它是整个输入法框架(IMF)结构的核心API,处理应用程序和当前输入法的交互。可以通过Context.getSystemService()来获取一个InputMethodManager的实例。
在开发过程中,最基础最重要的就是养成阅读API的习惯。优秀的程序员要养成把自己关在小黑屋里,断绝与外界的联网和联系,仅仅靠自己电脑中的开发环境和API文档,以及漂亮女仆送来的每天三顿饭,写出优秀的程序。这个在武侠小说中叫闭关,在软件开发中叫Clean Room,哈哈。
Android的API文档在:%SDK_ROOM%/docs/reference/index.html,InputManager类的位置:%SDK_ROOM%/docs/reference/android/view/inputmethod/InputMethodManager.html
Input Method Framework
目录
IMF简介
相关代码位置
展开
IMF简介
相关代码位置
展开
编辑本段IMF简介
从SDK 1.5版本以后,Android就开放它的IMF(Input Method Framework),让我们能够开发自己的输入法。
一个IMF结构中包含三个主要的部分:
input method manager:管理各部分的交互。它是一个客户端API,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务。
input method(IME):实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。
client application:通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。
InputManager
由UI控件(View,TextView,EditText等)调用,用来操作输入法。比如,打开,关闭,切换输入法等。
它是整个输入法框架(IMF)结构的核心API,处理应用程序和当前输入法的交互。可以通过Context.getSystemService()来获取一个InputMethodManager的实例。
在开发过程中,最基础最重要的就是养成阅读API的习惯。优秀的程序员要养成把自己关在小黑屋里,断绝与外界的联网和联系,仅仅靠自己电脑中的开发环境和API文档,以及漂亮女仆送来的每天三顿饭,写出优秀的程序。这个在武侠小说中叫闭关,在软件开发中叫Clean Room,哈哈。
Android的API文档在:%SDK_ROOM%/docs/reference/index.html,InputManager类的位置:%SDK_ROOM%/docs/reference/android/view/inputmethod/InputMethodManager.html
[2] 写在20110609:容易的MonKey测试
来源: 互联网 发布时间: 2014-02-18
写在20110609:简单的MonKey测试
Monkey测试很形象,说的就是这个测试像猴子一样在你的应用程序上乱点,模拟的是用户点击的操作。瓶颈:解锁。
Monkey测试步骤
1.连接手机,保持手机已连接到电脑。
2.打开cmd。
3.执行adb shell
4.输入Monkey命令。package_name改成你自己要测的包名,其余的不需要改动。
monkey -p package_name -s 23 --ignore-crashes --ignore-timeouts -v -v -v 100000> /data/local/tmp/log.txt 2>&1 &
5.Monkey测试结束后导出日志文件即可
adb pull /data/local/tmp/ d:/
6.定位文件中相应的CRASH或Not Responding。
其中解释一下这个Monkey命令。
monkey -p package_name -s 23 --ignore-crashes --ignore-timeouts -v -v -v 100000> /data/local/tmp/log.txt 2>&1 &
1.-p后面接着的对应的包名,如果是整机测试,就不需要 -p package_name
2.-s后面是对应的种子数,好像就是操作步骤,根据她们测试的经验,一般种子数在23,同步她们测试的结果,一般种子的个数固定为23,和她们选择的操作步骤就是同步的。
3.--ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现crash或者timeout时,Monkey测试会终止。这里是防止Monkey测试终止。
4.-v 指的是Monkey测试时点击的深度,一个-v表示一层,-v -v -v这里就是点击的深度达到三层的意思。
5.100000 这里是指点击的次数,根据她们测试的经验,对于单个应用程序这个次数设置在100000次就可以了;如果是整机,一般设置在500000次。
6.> /data/local/tmp/log.txt 测试的log记录在手机上/data/local/tmp/ 下面的log.txt里面,这个名字可以自己写。
7.2>&1 固定的写法,这个也很重要,代表的意思是中间忽略的东东的日志一并输入到指定的文件中。
8.最后单独的一个"&" 是一旦Monkey测试开始了,之后可以拔掉数据线,不会影响Monkey测试。
Monkey测试很形象,说的就是这个测试像猴子一样在你的应用程序上乱点,模拟的是用户点击的操作。瓶颈:解锁。
Monkey测试步骤
1.连接手机,保持手机已连接到电脑。
2.打开cmd。
3.执行adb shell
4.输入Monkey命令。package_name改成你自己要测的包名,其余的不需要改动。
monkey -p package_name -s 23 --ignore-crashes --ignore-timeouts -v -v -v 100000> /data/local/tmp/log.txt 2>&1 &
5.Monkey测试结束后导出日志文件即可
adb pull /data/local/tmp/ d:/
6.定位文件中相应的CRASH或Not Responding。
其中解释一下这个Monkey命令。
monkey -p package_name -s 23 --ignore-crashes --ignore-timeouts -v -v -v 100000> /data/local/tmp/log.txt 2>&1 &
1.-p后面接着的对应的包名,如果是整机测试,就不需要 -p package_name
2.-s后面是对应的种子数,好像就是操作步骤,根据她们测试的经验,一般种子数在23,同步她们测试的结果,一般种子的个数固定为23,和她们选择的操作步骤就是同步的。
3.--ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现crash或者timeout时,Monkey测试会终止。这里是防止Monkey测试终止。
4.-v 指的是Monkey测试时点击的深度,一个-v表示一层,-v -v -v这里就是点击的深度达到三层的意思。
5.100000 这里是指点击的次数,根据她们测试的经验,对于单个应用程序这个次数设置在100000次就可以了;如果是整机,一般设置在500000次。
6.> /data/local/tmp/log.txt 测试的log记录在手机上/data/local/tmp/ 下面的log.txt里面,这个名字可以自己写。
7.2>&1 固定的写法,这个也很重要,代表的意思是中间忽略的东东的日志一并输入到指定的文件中。
8.最后单独的一个"&" 是一旦Monkey测试开始了,之后可以拔掉数据线,不会影响Monkey测试。
[3] IMF简介-二
来源: 互联网 发布时间: 2014-02-18
IMF简介-2
InputManager
由UI控件(View,TextView,EditText等)调用,用来操作输入法。比如,打开,关闭,切换输入法等。
它是整个输入法框架(IMF)结构的核心API,处理应用程序和当前输入法的交互。可以通过Context.getSystemService()来获取一个InputMethodManager的实例。
Android的API文档在:%SDK_ROOM%/docs/reference/index.html,InputManager类的位置:%SDK_ROOM%/docs/reference/android/view/inputmethod/InputMethodManager.html
InputMethodService
包括输入法内部逻辑,键盘布局,选词等,最终把选出的字符通过commitText提交出来。实现输入法的基础就是名为InputMethodService的类,比如你要实现一个谷歌输入法,就是要extends本类。我们接下来要学习的SoftKeyboard Sample也是extends本类。InputMethodService类的位置在:%SDK_ROOM%/docs/reference /android/inputmethodservice/InputMethodService.html
InputMethodService是InputMethod的一个完整实现,你可以再在其基础上扩展和定制。它的主要方法如下:
onInitializeInterface() 顾名思义,它在初始化界面的时候被调用,而一般是由于配置文件的更改导致该函数的执行
onBinndInput() 它在另外的客户端和该输入法连接时调用
onStartInput() 非常重要的一个回调,它在编辑框中用户已经开始输入的时候调用。比如,当点击一个输入框,我们需要根据这个输入框的信息,设置输入法的一些特性,这个在Sample中很有体会。
onCreateInputView() 返回一个层次性的输入视图,而且只是在这个视图第一次显示的时候被调用
onCreateCandidatesView() 同onCreateInputView(),只不过创建的是候选框的视图。
onCreateExtractTextView() 比较特殊,是在全屏模式下的一个视图。
onStartInputView() 在输入视图被显示并且在一个新的输入框中输入已经开始的时候调用。
InputManager
由UI控件(View,TextView,EditText等)调用,用来操作输入法。比如,打开,关闭,切换输入法等。
它是整个输入法框架(IMF)结构的核心API,处理应用程序和当前输入法的交互。可以通过Context.getSystemService()来获取一个InputMethodManager的实例。
Android的API文档在:%SDK_ROOM%/docs/reference/index.html,InputManager类的位置:%SDK_ROOM%/docs/reference/android/view/inputmethod/InputMethodManager.html
InputMethodService
包括输入法内部逻辑,键盘布局,选词等,最终把选出的字符通过commitText提交出来。实现输入法的基础就是名为InputMethodService的类,比如你要实现一个谷歌输入法,就是要extends本类。我们接下来要学习的SoftKeyboard Sample也是extends本类。InputMethodService类的位置在:%SDK_ROOM%/docs/reference /android/inputmethodservice/InputMethodService.html
InputMethodService是InputMethod的一个完整实现,你可以再在其基础上扩展和定制。它的主要方法如下:
onInitializeInterface() 顾名思义,它在初始化界面的时候被调用,而一般是由于配置文件的更改导致该函数的执行
onBinndInput() 它在另外的客户端和该输入法连接时调用
onStartInput() 非常重要的一个回调,它在编辑框中用户已经开始输入的时候调用。比如,当点击一个输入框,我们需要根据这个输入框的信息,设置输入法的一些特性,这个在Sample中很有体会。
onCreateInputView() 返回一个层次性的输入视图,而且只是在这个视图第一次显示的时候被调用
onCreateCandidatesView() 同onCreateInputView(),只不过创建的是候选框的视图。
onCreateExtractTextView() 比较特殊,是在全屏模式下的一个视图。
onStartInputView() 在输入视图被显示并且在一个新的输入框中输入已经开始的时候调用。
最新技术文章: