(1)Android之路====APK基础入门1(UI控件使用)

本来是要写雇主公司自研SoC的Android驱动的,前几天开了个员工,其中一条"罪名"特别强调拷贝操作系统芯片代码到个人存储器,也就是Linux驱动,看来GPL协议保护有时候保护不了我们(就算能用GPL协议维权,也只是得一笔赔偿金,仍然开除),所以,目前不考虑写雇主公司的驱动教程了.我之前完全由我自行实现,且非工作任务,并声明GPL协议的代码,也被领导要求在博客下架,怕被公司法务追责,没办法,我还不打算走,所以只好下架.

一直在做Android的vendor下的自研模块,很久没有做Android上层的东西了,APK的功底还是在之前的Android K上,前几天从清华的服务器拉了套最新的代码,发现已经是Android R(11.0),而我们公司目前最新是P版(9.0)已经交付客户量产一段时间了,Q版(10.0)还在移植当中,2019年3月15号移植的Q已经可以在我们自研SoC上跑起来了.感觉发展的很快,自己需要更新一下实战知识,这里我基于Android 8.0来做一些基础APK教程,以备自己以后复习使用,之所以选择8.0是因为目前使用8.0及以上版本的设备在6%左右,在往上8.1及以上,则只有1.1%,so, you know...

1,环境搭建
2,创建并运行程序
3,View的概念
4,UI布局
5,UI常用控件及使用
6,Toast消息提示
7,AlertDialog对话框

1,环境搭建

首先下载根据操作系统选择下载Android studio: https://developer.android.com/studio/

如果是windows平台,则去甲骨文官网下载Java:https://www.oracle.com/technetwork/java/javase/downloads/index.html

如果是Linux平台,则直接安装openjdk,如: sudo apt-get install java-8-openjdk-amd64

安装步骤很简单,自己百度教程或者自行安装即可,可以参考:https://blog.csdn.net/qq_42154484/article/details/80622411

特别的,如果是amd系的CPU,建议安装Linux版本的Android studio,因为Android studio是基于IntelliJ做的,捆绑了intel的CPU,windows平台,如果不是intel的CPU,无法创建Android模拟器,而在Linux平台,amd CPU的计算机是可以用Android studio创建手机模拟器的,windows平台有一些第三方的手机模拟器,比如夜神模拟器,可以在amd的CPU运行,不过版本都太低,4.4, 5.1什么的,对开发高版本不利,当然,可以用手机真机验证,不过,那样耗机器呀.

2,创建并运行程序

Android Studio-->File-->New-->New Project-->弹出配置框,填一下apk的名字, domain, 存储路径等-->选择最小支持的SDK,我们选择8.0(较旧版本已经发生了一些变化,所以,选8.0或更高比较有学习意义),也及时8.0以下手机不支持运行此程序-->一路Next直到finish,之后,会出现如下图的工程界面(已经是可运行在手机上的程序了):

默认打开了两个文件,MainActivity.java和activity_main.xml,其中前者为执行代码,后者为布局文件,我们打开activity_main.xml,如下图:

可以看到,这个手机界面,所见即所得,此时的代码已经是可以运行的程序了,现在我们就让它运行在模拟器上,首先我们创建一个模拟器,选择Tools-->AVD Manager-->Create Virtual Device-->选择屏幕大小-->Next,选择镜像文件,选择8.0(API 26)及以上的镜像均可,之后finish后,就创建成功了,我们让模拟器运行起来就是这样的效果:

效果上,除了不能控制硬件,具备Android手机的基本功能,模拟器创建好了,我们让刚刚的程序运行起来,我们选择Run-->Run 'app',弹出选择框,选择刚刚创建的模拟器即可(要先安装adb,百度搜),代码会编译,然后会自动通过adb安装到模拟器,并运行,效果如下:

3,View的概念

a)所有的UI控件都继承View类。
b)ViewGroup是View的子类,它可以充当View的容器。

控件直接拖拽的形式或者在xml直接代码的形式都是可以的,下图是拖拽形式:

4,UI布局

ViewGroup直接父类
a)LinearLayout       线性布局
b)RelativeLayout    相对布局
c)FrameLayout       帧布局
d)TableLayout         表格布局
e)AbsoluteLayout    绝对布局
f)ConstraintLayout    约束版面布局

5,UI常用控件及使用

TextView  显示文字

使用:
// 假设textview的id是tv_title1
TextView title = (TextView) findViewById(R.id.tv_title1);
// 设置textview的内容
title.setText("welcome to shanghai");

EditText  用户可编辑   inputType  hint  ems

使用:
EditText usr = (EditText) findViewById(R.id.usr1);
// 预置的内容,用户时可编辑的,用户输入后,我们可以通过usr.getText()获取内容
usr.setText("username");

Button  事件处理

使用:
Button btn_con = (Button) findViewById(R.id.btn_connect);
btn_con.setOnClickListener(new BtnListener());

// 这里是实现内部类,也可以使用匿名类或者外部类等方式
class BtnListener implements View.OnClickListener {

        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.btn_connect:
                    System.out.println("connected !");
                    break;
                
                default:
                    break;
            }
        }
}

ImageView

使用:
ImageView img = (ImageView) findViewById(R.id.imageView1);
// 这里是通过代码设置图片,也可以在xml中预置图片,不过预置图片遇到代码图片会被替换掉
img.setImageResource(R.mipmap.ic_launcher);

RadioButton和RadioGroup  单选

使用:
// 这里用了一个RadioGroup包了两个radiobutton的形式
RadioGroup rg1 = (RadioGroup) fi
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值