• Android开发01


    Android开发01

    需要的工具:64adt-bundle-windows(安卓官网有下,根据系统选择32位或者64位即可,androidstudio以后再用,先用这一款谷歌定制的eclipse,打开之后在主界面找到Android SDK Manager 可以下载对应的SDK不过谷歌服务器国内链接比较慢,不要急,旁边一个按钮是Android Virtual Device Manager安卓模拟器)

    1,android开发环境的目录结构

    1.1 build-tools 编译需要用到的工具

    1.2 docs开发的离线文档(全英文,需要一定英语基础,看来要把英语学习排上日志了)

    1.3 extras 额外的工具,模拟器加速器(intel处理器加速软件),向下兼容的jar

    1.4 platforms 开发需要的平台(环境),每个平台对应的android.jar在对应的文件夹中

    1.5 platforms-tools 开发调试的工具,adb.exe 调试桥(可以看到当前连接的软件)

    1.6 sources android.jar源代码

    1.7 system-images 模拟器创建需要的镜像

    1.8 temp 临时文件夹

    1.9 tools 开发辅助需要用到的工具(模拟器)

    2,常见屏幕(在创建模拟器的时候有一个选项是Device,里面选择的就是不同的屏幕)

    2.1 VGA

    过去的一种图形显示大小的规范 480*640(主要是注意它们不同的分辨率)

    QVGA 240x320 缩小版VGA

    HVGA 480x320    缩高版HVGA

    WVGA 480x800  加高版WVGA

    FWVGA 854x480   加强版FWVGA

    3.ADB(比较重要)

    adbandroid debug bridge 安卓调试桥

    常见指令

    3.1 adb devices(只有当模拟器被启动了才能看到,并且会启动调试桥)

    查看链接到电脑上的所有的手机设备。(模拟器,真实的手机)

    3.2 adb kill-server(kill-server中间是没有空格的)

    杀死adb的调试桥

    3.3 adb start-server

    重新启动adb的调试桥

    3.4 adb install xxx.apk

    把电脑上的一个文件安装到模拟器(真实的手机)

    3.5 adb uninstall 应用程序的包名

    从手机卸载一个应用,参数是应用程序的包名,DDMS,查看应用程序的包名

    4.DDMS(切换成设备管理目录)dalvik debug manager system

    5.android应用的目录结构

    1. src文件夹,java源代码

      onCreate()界面被开启调用的方法,程序启动的时候调用

         //设置应用程序显示的ui布局

            setContentView(R.layout.activity_main);

    2. gen目录(这个文件夹是删不掉的,删了也会自动生成)

    自动生成的文件夹 ,里面保存的是res资源文件的引用

    3. android4.1.2 代表的是引用的jar

    4. libs文件夹

    代码的三方jar包。会自动的被添加到dependencies目录下

    5. android dependencies 开发依赖的jar

    6. bin

    编译生成的临时文件和二进制文件(字节码文件)

    7. res目录

    - drawable-ldpi  low 低分辨率 小图

    - drawable-mdpi  middle 中等分辨率

    - drawable-hdpi  high高分辨率

    - drawable-xhdpi x加大高分辨率

    - drawable-xxhdpi 加大再加大的分辨率

    - layout xml文件编写的布局

    - menu 菜单文件夹

    8. AndroidManifest.xml

     清单文件,配置应用程序的版本,图标,名称等重要信息。

    ##android应用开发的步骤(重点)

    1. res-->layout文件夹 修改xml布局文件

    2. src-->.java文件编写代码

    3. 找到关心的控件

    findViewByIdR.id.xxx);

    4. 设置点击事件,或者获取数据

    5. 记得权限。

    9.常见布局

    9.1. 线性布局 LinearLayout

    重要参数 朝向 orientation(方向)horizontal(横向)vertical(纵向)

    weight 权重 控制控件在父窗体里面显示的比例。

    9.2. 相对布局 RelateLayout

    特点:已某个控件为参考,来放置其他控件的位置

    给子节点提供了很多属性

    layout_centerHorizontal (是否横向居中)

    layout_centerVertical(是否纵向居中)

    layout_centerInParent(是否页面居中)

    layout_above (在对应id控件的上面,要注意仅仅是在上一行,并不一定纵向对齐)

    layout_below(下方,同样没有纵向对齐)

    layout_toLeft (左边,没有横向对齐)

    layout_toRight(右边,没有横向对齐)

    layout_alignParentTop(父窗口顶部)

    layout_alignParentBottom (父窗口下方)

    layout_alignParentLeft

     layout_alignParentRight

    layout_alignTop

    layout_alignBottom

    layout_alignLeft

    layout_alignRight

    9.3 帧布局 FrameLayout

    > div  暂停的图标,显示在界面的中间。

    一层覆盖一层,后面的可以覆盖前面的

    9.4 表格布局 TableLayout

    里面放<TableRow>标签,里面的子节点可以使用weight属性

    9.5绝对布局 AbsoluteLayout

    >废弃,不推荐使用。

    >720p    (1280×720)

    1080P   (1920X1080)

    9.6点击事件的几种写法

    1. 内部类实现onclickListener的接口

    2. 匿名内部类实现onclickListener

    3. 让当前的Activity实现onclickListener的接口

    > 界面的按钮比较多,如果通过内部类或者匿名内部类代码比较臃肿。

     4.在xml里面给button定义一个onclick属性,指向对应的方法名即可(参照js中的属性定义)

    附上一个安卓中button练习的代码

    //这是一个Activity 的实现类,代表app的控制中心

    package com.zzx.onclick;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnClickListener{
        private Button bt1;
        private Button bt2;
        private Button bt3;
        private Button bt4;
        private Button bt5;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //1,获取4个按钮
            bt1 = (Button) findViewById(R.id.Button1);
            bt2 = (Button) findViewById(R.id.Button2);
            bt3 = (Button) findViewById(R.id.Button3);
            bt4 = (Button) findViewById(R.id.Button4);
            bt1.setOnClickListener(new MyOnclick());
            //3,第二种方法,匿名内部类,new OnclickListener,但是按钮比较多就不方便
            bt2.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "2222", 0).show();
                }
            });
            bt3.setOnClickListener(this);
            bt4.setOnClickListener(this);
        }
        //4,第三种方法,当前MainActivity继承OnClickListener类,重写方法,在方法内部做判断,判断是哪一个id
        @Override
        public void onClick(View v){
            switch (v.getId()) {
            case R.id.Button3:
                Toast.makeText(MainActivity.this, "3333", 0).show();
                break;
            case R.id.Button4:
                Toast.makeText(MainActivity.this, "4444", 0).show();
                break;
            }
        }
        //5,第四种方法,在按钮标签内定义一个onclick属性,指向对应的方法名,类似js中的单击事件
        public void click(View v){
            Toast.makeText(MainActivity.this, "5555", 0).show();
        }
       
        //2,第一种方法,创建自定义类,这个类要是内部类,才能用到this,实现OnclickListener接口
        private  class MyOnclick implements OnClickListener{
            @Override
            public void onClick(View v){
                Toast.makeText(MainActivity.this, "1111", 0).show();
            }
        }
    }

    //这里是xml文件,代表app主界面的布局

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
    
        <Button
            android:id="@+id/Button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="Button1" />
    
        <Button
            android:id="@+id/Button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="Button3" />
    
        <Button
            android:id="@+id/Button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:text="Button4" />
    
        <Button
            android:id="@+id/Button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="Button2" />
    
        <Button
            android:id="@+id/button5"
            android:onClick="click"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/Button1"
            android:layout_marginTop="125dp"
            android:layout_toRightOf="@+id/Button1"
            android:text="Button" />
    
    </RelativeLayout>
  • 相关阅读:
    根据下拉选项制作动态图
    yyww格式转成几号到几号
    提取字符串中间的数字
    记录每个单元格录入时间
    多对一查找
    提取身份证号和手机号
    使用pycharm clone分支代码
    gitee clone 分支代码
    备忘 局域网 远程连接
    备忘 局域网远程连接
  • 原文地址:https://www.cnblogs.com/adventurer/p/5510195.html
Copyright © 2020-2023  润新知