• Android学习笔记DDMS试图与Button


    DDMS试图的学习及Button的引用

    1.DDMS介绍:

    DDMS全称Dalvik Debug Monitor Service.DDMS为IDE和emultor及真正的android设备架起来了一座桥梁,Android DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的

    1)每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统而实现的。所有Android应用的线程都对应一个Linux线程。

    2)DDMS启动时会与ADB之间建立一个device monitoring service用于监控设备。当设备断开或链接时,这个service就会通知DDMS

    3)当一个设备链接上时,DDSM和ADB之间又会建立VM monitoring service用于监控设备上的虚拟机

    4)通过ADB Deamon与设备上的虚拟机的debugger建立链接,这样DDMS就开始与虚拟机对话了

     通过DDMS看到目标机器上运行的进程/现成状态,可以 android的屏幕到开发机上,可以看进程的heap信息,可以查看logcat信息,可以查看进程分配内存情况,可以像目标机发送短信以及打电话,可以向android发送地理位置信息。可以像gdb一样attach某一个进程调试。 android SDK tools提供了ddms的功能

    开启进入 DDMS。  1. 可以直接点击 :DDMS图标 切换到 DDMS试图。

       2.如果没有发现 DDMS图标。Window---->Open Perspective---->DDMS 或 Window---->Open Perspectie---->Other

     

    DDMS主界面

    界面单独介绍:1.Devices:显示现在能够使用的设备,比如虚拟机或真机 ; 以及每个设备存在的程序;

    2.Emulator Control:能够给设备打电话,发短信;

    3.Logcat:类似于Java程序的Console,报错、显示信息都在此处显示;

     

     

     

    4.File Explorer:设备中的文件,可以上传和下载;

     

    2.Button控件引用

     <Button android:id="@+id/btn_one"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="确定" />

    后台源码:

    @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button btn=(Button)findViewById(R.id.btn_one);
            btn.setOnClickListener(new OnClickListener()
            {
                
                @Override
                public void onClick(View v)
                {
                    Toast.makeText(MainActivity.this, "您点击了我!",Toast.LENGTH_LONG).show();
                }
            });
        }

    图片显示效果:

    源码二:

       <Button android:id="@+id/btn_one"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="Button1" />
     <Button android:id="@+id/btn_two"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="Button2" />
       

    后台源码:

    @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button btn_one=(Button)findViewById(R.id.btn_one);
            btn_one.setOnClickListener(listener);
            
            Button btn_two=(Button)findViewById(R.id.btn_two);
            btn_two.setOnClickListener(listener);
            
        }
        private OnClickListener listener=new OnClickListener()
        {
            
            @Override
            public void onClick(View view)
            {
                Button btn=(Button)view;
                switch (btn.getId())
                {
                case R.id.btn_one:
                    Toast.makeText(MainActivity.this, "您点击了!"+btn.getText(),Toast.LENGTH_LONG).show();
                    break;
                case R.id.btn_two:
                {
                    Toast.makeText(MainActivity.this, "您点击了!"+btn.getText(),Toast.LENGTH_LONG).show();
                    System.out.println("您点击了Button2");
                }
                break;
                default:
                    break;
                }
            }
        };

    效果图:

  • 相关阅读:
    CSS选择器实现搜索功能 驱动过滤搜索技术
    js实现倒计时 类似团购网站
    SQL Server系统表sysobjects介绍与使用
    四种开机的奇葩方法 设置定时开机
    sass 使用小记
    flex 弹性布局
    margin padding width height left top right bottom 百分比
    vue中canvas 实现手势密码
    babel-polyfill(解决浏览器不支持es6的问题)和es6-promise(解决不支持promise的问题)
    Ajax fetch axios的区别与优缺点
  • 原文地址:https://www.cnblogs.com/xieyong_198510/p/3440037.html
Copyright © 2020-2023  润新知