Android开发 —如何操作财富目录中的财富文件贰管理

Android开发 —怎么样操作能源目录中的能源文件二

  



一、颜色能源管理

效果图:

  描述:

    一、改变字体的背景颜色

    2、改变字体颜色

    三、改变按钮颜色

    四、图像颜色切换

  操作描述:

    点击(1)中的颜色能源管理,进入(二),点击(二)中的微信字样,会现出(叁)的效应

    点击(一)中的颜色能源管理二,进入(4),点击(四)中的菜单按钮,菜单按钮的图形和字体的颜色会随着变动

  管理 1

            (1)

**管理 2管理 3管理 4**

 

         (4)                          (2)                           (3)

 

1、activity_main.xml

  描述:

    在MainActivity中画出八个按钮“颜色能源管理”和“颜色能源管理2”

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn1"
        android:text="颜色资源管理"
        android:onClick="test_1"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="颜色资源管理2"
        android:onClick="test_2"
        />
</LinearLayout>

2、MainActivity.java

  描述:

    在MainActivity中式点心击五个按钮可各自展开页面跳转

package com.example.android_colorresoucesdemo;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void test_1(View view){
        Intent intent = new Intent(this,ColorActivity.class);
        startActivity(intent);
    }
    public void test_2(View view){
        Intent intent = new Intent(this,WeixinMenuActivity.class);
        startActivity(intent);
    }
}

3、activity_color.xml

  描述: 

    第一个TextView中:

      背景引用的是系统颜色

      字体颜色引用的是res目录下values包中color.xml文件中定义的水彩  

    第二个TextView中:

      文本颜色引用的是res目录下values包中color.xml文件中定义的水彩

    第三个TextView中:

      并不是通过xml文件来安装字体颜色的而是经过在Activity中央银行使代码的主意设置文本颜色

         

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_color"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/showText"
        android:text="这里是颜色资源的使用"
        android:textSize="30sp"
        android:background="@android:color/holo_blue_light"
        android:textColor="@color/colorAccent"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="navicat颜色"
        android:textSize="25sp"
        android:textColor="@color/navicat_color"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/changeColor"
        android:text="代码设置颜色"
        android:textSize="25sp"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我像不像微信"
        android:textColor="@color/btn_text_color"
        android:textSize="25sp"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn1"
        android:text="微信"
        android:textColor="@color/btn_text_color"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn2"
        android:text="微信"
        android:textColor="@color/btn_text_color"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn3"
        android:text="微信"
        android:textColor="@color/btn_text_color"
        android:drawableLeft="@drawable/btn_image_menu"
        />
</LinearLayout>

4、ColorActivity.java  

  描述:

    通过代码的措施设置文本颜色有三种办法:

        一、通过A奥德赛GB的形式设置文本颜色

        2、通过引入财富文件中的财富的办法设置文本颜色

    给按钮设置图标,即什么将图像设置在按钮上。

    

package com.example.android_colorresoucesdemo;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

public class ColorActivity extends Activity {
  //通过代码设置文本颜色
    private TextView changeColor;
    private Button btn1,btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_color);

        changeColor = (TextView)findViewById(R.id.changeColor);
     //通过ARGB模式设置文本颜色,参数分别代表,红色值、黄色值、蓝色值、透明度
        //changeColor.setTextColor(Color.argb(225,225,0,0));
     //通过资源引入的方式设置文本颜色
     //将id为changeColor的TextView的文本颜色设置为资源文件中定义的颜色
        changeColor.setTextColor(getResources().getColor(R.color.colorAccent));

     //获取两个按钮
        btn1 = (Button)findViewById(R.id.btn1);
        btn2 = (Button)findViewById(R.id.btn2);
     
     //读取资源文件中的图片文件w4.jpg 
        Drawable image = getResources().getDrawable(R.drawable.w4);
     //四个参数的含义:x、y、width、height
        image.setBounds(0,0,65,65);
     //可以给按钮在上下左右设置图标,如果不想在某个地方显示,则设置为null.但是Drawable必须已经setBounds(Rect),意思是你要添加的资源必须已经设置过初始位置、宽和高等信息。
        btn1.setCompoundDrawables(image,null,null,null);

        Drawable image2 = getResources().getDrawable(R.drawable.w5);
        image2.setBounds(0,0,65,65);
        btn2.setCompoundDrawables(image2,null,null,null);

    }
}

5、activity_weixin_menu.xml

  描述:

    壹、用了针锋相对布局

    2、相对布局中用了线性水平布局

    三、RadioGroup原本是用来安装单选按钮的,那里则将单选按钮设置成图像按钮,达成了按钮的切换操作

  拓展:   

    1. android:layout_above=”@id/xxx”  –将控件置于给定ID控件之上

    2. android:layout_below=”@id/xxx”  –将控件置于给定ID控件之下

    3. android:layout_toLeftOf=”@id/xxx” 
      –将控件的右侧缘和给定ID控件的左手缘对齐

    4. android:layout_toRightOf=”@id/xxx” 
      –将控件的左侧缘和给定ID控件的右侧缘对齐

    5. android:layout_alignLeft=”@id/xxx” 
      –将控件的左侧缘和给定ID控件的左边缘对齐

    6. android:layout_alignTop=”@id/xxx” 
      –将控件的下边缘和给定ID控件的上方缘对齐

    7. android:layout_alignRight=”@id/xxx” 
      –将控件的右侧缘和给定ID控件的左侧缘对齐

    8. android:layout_alignBottom=”@id/xxx” 
      –将控件的底边缘和给定ID控件的底边缘对齐

    9. android:layout_alignParentLeft=”true” 
      –将控件的左侧缘和父控件的左侧缘对齐

    10. android:layout_alignParentTop=”true” 
      –将控件的下边缘和父控件的上边缘对齐

    11. android:layout_alignParentRight=”true” 
      –将控件的左侧缘和父控件的右侧缘对齐

    12. android:layout_alignParentBottom=”true”
      –将控件的底边缘和父控件的底边缘对齐

    13. android:layout_centerInParent=”true” 
      –将控件置于父控件的宗旨地点

    14. android:layout_centerHorizontal=”true” 
      –将控件置于水平方向的基本岗位

    15. android:layout_centerVertical=”true” 
      –将控件置于垂直方向的中央地方


    http://schemas.android.com/apk/res/android“

    android:id="@+id/activity_weixin_menu"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/WeixinMenu"
        android:orientation="horizontal" <!--线性水平布局-->
        android:background="@android:color/holo_orange_light"
        android:layout_alignParentBottom="true" <!--避免弹出输入法扰乱布局-->
        >
        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checkedButton="1"
            android:layout_marginTop="5dp"
            android:orientation="horizontal"
            android:id="@+id/radioGroup"
            >
            <RadioButton
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/rad_1"
                android:text="微信"
                android:layout_weight="1"
                android:button="@null"
                android:clickable="true"
                android:gravity="center"
                android:textStyle="bold"
                android:textColor="@color/btn_text_color"
                android:drawableTop="@drawable/btn_image_menu"
                />
            <RadioButton
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/rad_2"
                android:text="通讯录"
                android:layout_weight="1"
                android:button="@null"
                android:clickable="true"
                android:gravity="center"
                android:textStyle="bold"
                android:textColor="@color/btn_text_color"
                android:drawableTop="@drawable/btn_image_menu"
                />
            <RadioButton
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/rad_3"
                android:text="发现"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:textStyle="bold"
                android:clickable="true"
                android:textColor="@color/btn_text_color"
                android:drawableTop="@drawable/btn_image_menu"
                />
            <RadioButton
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/rad_4"
                android:text="我"
                android:layout_weight="1"
                android:button="@null"
                android:clickable="true"
                android:gravity="center"
                android:textStyle="bold"
                android:textColor="@color/btn_text_color"
                android:drawableTop="@drawable/btn_image_menu"
                />
        </RadioGroup>
    </LinearLayout>
    

6、WeixinMenuActivity.java

  描述:

    壹、先取得到按钮

    贰、将各样按钮分别传入到setDrawableTop()方法中,

    3、通过getCompoundDrawables()[1]  获取RedioButton上倾向的图样

      数组0,1,2,三,对应着左,上,右,下

    四、设置图像的宽和高为70

package com.example.android_colorresoucesdemo;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.RadioButton;

public class WeixinMenuActivity extends Activity {
    RadioButton rb1,rb2,rb3,rb4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_weixin_menu);

        rb1 = (RadioButton)findViewById(R.id.rad_1);
        rb2 = (RadioButton)findViewById(R.id.rad_2);
        rb3 = (RadioButton)findViewById(R.id.rad_3);
        rb4 = (RadioButton)findViewById(R.id.rad_4);
     //调用下面定义的setDrawableTop()方法
        setDrawableTop(rb1);
        setDrawableTop(rb2);
        setDrawableTop(rb3);
        setDrawableTop(rb4);
    }

    public  void setDrawableTop(RadioButton tv){
     //数组0,1,2,3,对应着左,上,右,下
        Drawable drawable = tv.getCompoundDrawables()[1];
        drawable.setBounds(0,0,70,70);
     //动态的画左上右下四个方向,上面代码drawable.setBounds()初始化了图像的位置,现在将drawable放在第二个参数上,代表放在View的上面的位置上
        tv.setCompoundDrawables(null,drawable,null,null);
    }
}

7、在res目录下开创三个color包,color包中开创2个btn_text_color.xml文件

管理 5

 

btn_text_color.xml

  描述:

    android:state_checked=”false” 表示按钮未有被点击时显得的颜色

    android:state_checked=”true” 表示按钮被点击时按钮呈现的颜色

   如何引用这么些能源呢?

     只需在xml文件对应的按钮中央银行使 android:textColor=”@color/btn_text_color”

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#002200" android:state_checked="false"/>
    <item android:state_checked="true" android:color="@color/navicat_color"/>
</selector>

 八、在res目录下的drawable包中创制二个btn_image_menu.xml文件,且在包内放置两张图片

管理 6

 

管理 7管理 8

          w4.jpg      w5.jpg

 

btn_image_menu.xml

  描述:

    android:state_checked=”false”
表示尚无点击这么些图像时默许展现的图样正是它

    android:state_checked=”true”
表示当点击了那些图像时图像展现的旗帜

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false"
        android:drawable="@drawable/w4"
        />
    <item android:state_checked="true" android:drawable="@drawable/w5"/>
</selector>

玖、在res目录下的values包中期维修改color.xml文件和styles.xml文件

color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="navicat_color">#63CF10</color>
</resources>

styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>
    <style name="MyTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <item name="android:buttonStyle">@style/MyButtonStyle</item>
        <item name="android:textViewStyle">@style/MyTextViewStyle</item>
    </style>
    <style name="MyButtonStyle" parent="android:Widget.Button">
        <item name="android:textSize">25dp</item>
        <item name="android:textColor">@color/btn_text_color</item>
        <item name="android:clickable">true</item>
    </style>
    <style name="MyTextViewStyle" parent="android:Widget.TextView">
        <item name="android:textSize">20dp</item>
        <item name="android:textColor">@color/colorAccent</item>
    </style>
</resources>

 

//四个参数含义:x、y、width、height

一、JMeter 介绍

     Apache
JMeter是百分百纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它能够用来测试静态和动态能源的属性,例如:静态文件,Java
Servlet,CGI Scripts,Java
Object,数据库和FTP服务器等等。JMeter可用于模拟大量载重来测试一台服务器,互联网也许指标的健壮性大概分析不一样负载下的完好质量。
   
 同时,JMeter可以援救你对您的应用程序举办回归测试。通过你成立的测试脚本和assertions来验证你的次第再次来到了所期待的值。为了更高的适应性,JMeter允许你采用正则表明式来创立这几个assertions.

 

JMeter与LoadRunner比较

JMeter 是一款开源(有着一流开源工具特点:界面欠美观)测试工具,即便与LoadRunner相比较有众多欠缺,比如:它结果分析能力未有LoadRunner详细;很它的长处也有那多少个:

    •   开源,他是一款开源的免费软件,使用它你不须要支出任何费用,
    •  
      小巧,相比L途锐的非常大(最新LQashqai11将近4GB),它不行精致,不须要安装,但供给JDK环境,因为它是运用java开发的工具。
    •  
      效率强大,jmeter设计之初只是二个简易的web质量测试工具,但因而不段的更新扩大,未来能够完结数据库、FTP、LDAP、WebService等地方的测试。因为它的开源性,当然你也足以依照本人的需要扩充它的功力。

 两者最大的界别:jmeter不援救IP欺骗(jmeter贰.5上述的版本有此功能的达成,点击那里查看),而LLacrosse补助。

 

 

JMeter缺点

  使用JMeter不恐怕验证JS程序,也无能为力证实页面UI,所以要供给和Selenium合营来形成Web2.0运用的测试。 

 

 

贰、JMeter 下载安装

1)JMeter安装

  1. http://jmeter.apache.org/下载最新版本的JMeter,解压文件到任意目录

贰. 安装JDK,配置环境变量JAVA_HOME.

叁. 系统供给:JMeter二.1一 须求JDK一.陆以上的本子协助运营

四. JMeter能够运转在如下操作系统上:Unix,Windows和Open VMS.

伍. 防止在2个有空格的途径安装JMeter,那将导致远程测试出现难题。

 

二)JMeter插件安装

壹. 插件下载地址: http://jmeter-plugins.org/downloads/all/

二. 插件下载后解压:找到JMeterPlugins-Extras.jar,把JMeterPlugins-Extras.jar放到apache-jmeter-二.1贰\lib\ext目录。

 

三、JMeter 运行

  1. 进去bin目录运维jmeter.bat运维jmeter

 
 注意:打开的时候会有三个窗口,JMeter的通令窗口和JMeter的图形操作界面,不可能关闭命令窗口。

2. JMeter的classpath:

 
 假如您想添加其它JA翼虎文件到JMeter的classpath中,你必须复制他们到lib目录中;

 
 若是您付出了一个JMeter特定组件或有效的jar文件,复制到lib目录下的ext目录中。

3.
开辟未来显得的是华语,若是您想选拔其余语言,比如英文,那么通过菜单选项->选用语言->英文即可,当然转为中文也是如出一辙操作。

 

四、JMeter 测试布置元件 

打开Jmeter页面:包含测试布置+工作台。

一、Test Plan (测试安排):用来讲述2本性质测试,包括与此次品质测试全部有关的效果。也就说本的质量测试的装有内容是于依据四个陈设的。

右键单击“测试布署”弹出菜谱:

管理 9

注意

“函数测试形式”复选框,若是被增选,它会使Jmeter记录来自服务器重临的种种取样的数目。如若您在测试监听器中精选三个文书,那些数额将被写入文件。如果您尝试二个较小的测试来保管Jmeter配置不错并且你的服务器正在重临期望的结果,那是很有用的。这样做的结局便是以此文件会连忙的附加,并且Jmeter的效能会潜移默化。

借使不记录数据到文件,那一个选项就从不例外了。

 

2、Threads (Users)线程 用户

管理 10

就算如此有八个添加线程组的选项,名字不等同, 创造之后,其界面是全然一样的。在此以前的版本只有二个线程组的名字。今后多三个setUp theread Group 与terDown Thread Group

1) setup thread group 

1种独特类型的ThreadGroup的,可用来执行预测试操作。那几个线程的行事完全像三个好端端的线程组元件。差异的是,那几个类其余线程执行测试前举行定期线程组的实施。

setUp Thread Group类似于lr的init.可用于执行预测试操作。

2) teardown thread group. 

1种奇特类型的ThreadGroup的,可用以执行测试后动作。那个线程的行为完全像三个平常的线程组元件。分化的是,这个品种的线程执行测试甘休后实施期限的线程组。

tearDown Thread Group类似于lr的end.可用于实践测试后动作。

3) thread group(线程组).

     那么些就是大家平日添加运作的线程。通俗的讲叁个线程组,,能够当作八个虚构用户组,线程组中的每一个线程都能够清楚为1个虚拟用户。线程组中蕴藏的线程数量在测试执行进度中是不会发出改变的。

管理 11

线程组:

  名称:就像是字面意思,起个有意义的名字就行

  注释:

  线程数:那里选取5

  Ramp-Up
Period:单位是秒,暗中认可时间是1秒。它钦定了开发银行全部线程所消费的年华,比如,当前的设定表示“在伍秒内开发银行多少个线程,各种线程的间隔时间为一秒”。倘使您要求Jmeter立即运行全部线程,将此设定为0即可

  循环次数:表示各类线程执行稍微次呼吁。

 

三、测试片段(Test Fragment)

    
测试片段成分是控制器上的多个种特有的线程组,它在测试树上与线程组处于三个层级。它与线程组有所差别,因为它不被实施,除非它是一个模块控制器大概是被控制器所引用时才会被执行。

管理 12

 

 

控制器

JMeter有两体系型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用那几个原件来驱动处理一个测试。

4、取样器(Sampler)

   
取样器(Sampler)是性质测试中向服务器发送请求,记录响应新闻,记录响应时间的矮小单元,JMeter 原生帮助种种分裂的sampler ,
如 HTTP Request Sampler 、 FTP  Request Sampler 、TCP  Request Sampler

JDBC Request 山姆pler 等,每①种分裂类其他 sampler 能够依照设置的参数向服务器发出差异品类的呼吁。

    在Jmeter的装有萨姆pler中,Java Request Sampler与BeanShell Requst
萨姆pler是三种新鲜的可定制的萨姆pler.

管理 13

 

伍、逻辑控制器(Logic Controller)

   
逻辑控制器,蕴涵两类无件,1类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 假使(If)控制器 、
switch Controller 、Runtime Controller、循环控制器等。另1类是用来集团可控制 sampler 来节点的,
如 事务控制器、吞吐量控制器。

管理 14

 

陆、配置元件(Config Element)

   
配置元件(config element)用于提供对静态数据配置的扶助。CSV Data Set config 能够将地点数据文件形成数据池
(Data Pool),而对应于HTTP Request Sampler和 TCP Request 萨姆pler等门类的配制无件则能够修改
山姆pler的默许数据。

  例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的
cookie 举行保管。

     HTTP
请求暗中认可值不会触发Jmeter发送http请求,而只是定义HTTP请求的暗中同意属性。

管理 15

 

7、定时器(Timer)

   
定时器(Timer)用于操作之间设置等待时间,等待时间是性质测试中常用的控制客户端QPS的一手。类似于LoadRunner里面包车型客车“思量时间”。
JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等分裂类型的Timer。

管理 16

 

八、前置处理器(Per Processors)

   
前置处理器用于在实际的呼吁发出从前对即将爆发的呼吁进行出格处理。例如,HTTP UTucsonL重写修复符则能够完毕URubiconL重写,当RUL中有sessionID 一类的session音信时,能够因此该处理器填充发出请求的其实的sessionID 。

管理 17

 

9、前置处理器(Post Processors)

   
前置处理器是用来对Sampler 发出请求后得到的服务器响应进行拍卖。1般用来领取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,X帕特h  Extractor 则能够用于提取响应数据中经过给定XPath 值得到的多寡;正则表明式提取器,则足以领取响应数据中通过正则表明式获得的数据。

管理 18

 

10、断言(Assertions)

预感用于检查实验中获取的附和数据等是不是相符预期,断言一般用来设置检查点,用以保险品质测试进程中的数据交互是或不是与预期壹致。

管理 19

 

11、监听器(Listener)

这么些监听器可不是用来监听系统能源的构件。它是用来对测试结果数据举办拍卖和可视化体现的一各个元件。 图形结果、查看结果树、聚合报告、用表格察看结果都以我们常常使用的预制构件。

管理 20

 

五、工作台

管理 21

在测试中大家恐怕须要近日改变1些组件,能够把一部分亟待变更的零部件保存在工作哈博罗内,测试成功后再恢复生机,可是切记:无法脱离jmeter.一旦退出jmeter,工作长沙的内容就会消亡。

1、工作台-非测试元件-Property
Display,
此部件相当于是jmeter.properties的GUI。

管理 22

 

六、帮助

http://jmeter.apache.org/usermanual/component\_reference.html

最佳的佑助是:菜单-“帮助”-“帮助”。

管理 23

 

 

到此,大家早就简单了然了jmeter的骨干构成原件,我们后序的测试工作也即是应用那个部件来成功测试职务。

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注