1、

  • ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
  • UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
  • Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。
    符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

2、<action android:name="android.intent.action.HOME"/>
设置APP为Home键启动器

3、改文件包名,使两个软件版本能同时安装
第一步、改java目录文件夹名 第二步、改manifests下的package名 第三部、改每个报错java文件的import R路径,即第一步改过的文件夹名

4、API兼容法: 如4.4以上透明状态栏设置

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
    {
            // 包含新API的代码块     
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                // 透明导航栏
//       getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    }
    else
    {
            // 包含旧的API的代码块
    }

再设置xml布局顶部

android:clipToPadding=”true” 
 android:fitsSystemWindows=”true”

5、两种遍历数组方式
for循环:
int [] nums = new int [] {0,1,2,3,4,5,6,7,8,9};

for(int i=0;i<11;i++){
      System.out.println(num[i]);
}

for-each循环:

for(int n : nums){
   System.out.println(n);
}

6、设置系统静音方法:

public void volume(View v) {
new Thread(){
public void run() {
try{
                Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_VOLUME_MUTE);
}
catch (Exception e) {
                Log.e("Exception when onBack", e.toString());
}
        }
    }.start();
}

7、
白盒测试,是测试员知道了产品功能,内部结构,对其功能进行测试!
一般程序员开发完一种功能,测试员就立马测试此功能的时候,就是白盒测试!
一般是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。

黑盒测试,是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出
一般发生在快要验收的最后阶段,测试员抛弃程序内部结构,只拿规格说明书,来验证,程序是否合格! (引用)

8、点击切换状态

private int isVolumnEnabled = 1;
public void volume(View v) {
if (isVolumnEnabled == 1) {
volume.setBackgroundResource(R.drawable.volume_mute);
isVolumnEnabled = 0;
} else {
volume.setBackgroundResource(R.drawable.volume);
isVolumnEnabled = 1;
}

9、两种广播注册类型
两种注册类型的区别是:
1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。 (在manifest中注册)
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。(在activity中注册)

10、如何启用Service,如何停用Service。
服务的开发比较简单,如下:
第一步:继承Service类
public class SMSService extends Service {}
第二步:在AndroidManifest.xml文件中的节点里对服务进行配置:
服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法都可以启动Service,但是它们的使用场合有所不同。使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。

11、软件文档定义为:
1. 文档是一种对软件系统的书面描述;
2. 文档应当精确地描述软件系统;
3. 软件文档是软件工程师之间用作沟通交流的一种方式;
4. 文档的类型有很种,包括软件需求文档,设计文档,测试文档,用户手册等;
5. 文档的呈现方式有很种,可以是传统的书面文字形式或图表形式,也可是动态的网页形式

12、xml布局文件头部设置
xmlns:tools=”http://schemas.android.com/tools”
tools:context=”.MainActivity”
layout布局中显示当前activity的主题

13、(转)编写测试用例,看输入输出是否正确
测试用例是软件测试的核心
测试用例制定的原则
测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。测试数据应该选用少量、高效的测试数据进行尽可能完备的测试;基本目标是:设计一组发现某个错误或某类错误的测试数据,测试用例应覆盖方面:
1、 正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用
例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。
2、 容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出,
输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。
3、 完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。
4、 接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。
5、 数据库测试:依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行测试。
6、 边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。
7、 压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录运行。。。进行测试。
8、等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。
9、错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。
10、效率:完成预定的功能,系统的运行时间(主要是针对数据库而言)。
11、可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。
12、可移植性:在不同操作系统及硬件配置情况下的运行性。
13、回归测试:按照测试用例将所有的测试点测试完毕,测试中发现的问题开发人员
已经解决,进行下一轮的测试。
14、比较测试:将已经发版的类似产品或原有的老产品与测试的产品同时运行比较,或与已往的测试结果比较

14、A/B测试
标题

长标题还是短标题
疑问句还是陈述句
正式语气还是非正式语气
强调卖点 A 还是卖点 B
图片

大图片还是小图片
照片还是绘图
客户还是产品
布局

单列销售信函布局还是多列布局
3页的形式还是1 页的紧凑形式
销售切入点

质量还是便利
功能还是服务
赚钱还是省钱
转换激励

强调免费送货还是退货自由
列出所有的激励措施还是什么都不列
电话订购转换还是在线表格转换

15、“RuntimeException(“Stub!”)”表示实际运行时的逻辑会由Android ROM里面相同的类代替执行。

16、隐式Intent作用,调用短信,电话,webview等功能

17、公司内部wiki百科,其他同事更方便查看各种工作流程,工作经验分享

18、 编写Java程序时,应注意以下几点:

  • 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的Java 程序由public static void main(String []args)方法开始执行。

19、在Android开发中,常常需要调用对话框,但会遇到这样一种情况,在显示对话框的时候,点击对话框以外的屏幕其他区域,会关闭对话框。以下是解决该问题的设置:

AlertDialog.Builder builder = new AlertDialog.Builder(context); 
 //不关闭写法 
 builder.setCancelable(false); 
 //关闭写法 
 builder.setCancelable(true);

20、常用adb命令

adb shell //进入adb控制台 
 adb devices //查看连接设备 
 adb install softwareName.apk 安装当前目录下的apk到当前连接设备