一、Android 概念

Android是开放式的手机和电脑操作系统,是基于Linux系统做的上层开发。

android可以做些什么?

Android可以开发各种手机应用APP,也可以开发车载系统等,在每一个领域中都有应用,已经在各大领域扮演重要角色。

二、Android 在物联网大赛中的具体实践

在物联网参赛说明中如此描述,物联网移动应用开发:基于 Android 开发平台,综合运用软件工 程、Android、嵌入式数据库等基础知识,完成 Android 嵌入式应用程序的开发,考察选手传感器技术、条码技术、ModBus 协议、基于网关数据采集技术、基于云平台设备接口开发等物联网综合移动设计开发能力

例:餐厅环境监控子系统开发

三、Android 开发环境搭建

Android环境搭建需要完成软件安装:一JDK、Android Studio、Android SDK

1、JDK安装和配置环境

JAVA_HOME
E:\Java\JDK
Path
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

2、Android Studio 安装(注意需要足够的C盘)

点击net直接安装即可,在导入部分选择不导入

3、默认会加载SDK,如果想要选择自己的SDK,那么你需要做出以下步骤

File>>Project Structure >>SDK

4、选择JDK位置

File>>Project Structure >>JDK

5、安装虚拟机,点击右上角AVD Manager(在电脑上运行的模拟手机简称AVD)

五、运行第一个android应用

File>>New Project

创建的项目结构如下

参考文档

https://www.jianshu.com/p/4962b4eeec63

项目运行如下

六、运行android程序可能出现的问题

1、不支持3.8

   在build.gradle中去掉相关导入

2、无法生成APK,将app下的buid删除

3、无法生存apk,apk为空

File>> setting>> buid >> Instent run 勾选去掉

七、布局文件介绍

ConstraintLayout布局概述:

ConstraintLayout是约束布局,从主流布局上来讲,将会成为主流的布局,和相对布局非常类似,但比相对布局更为流畅,约束布局最适合的手动拖动控件布局。

使用方式方式和属性说明:

1、添加项目依赖

implementation 'com.android.support.constraint:constraint-layout:2.0.1'

八、常见的android布局和控件

android中有常见的几大布局:LinearLayout线性布局、RelativeLayout相对布局、AbsoluteLayout绝对布局、GridLayout网格布局。

1、weight权重讲解

权重:就是在布局界面中所占的比例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#f47920">
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#2a5caa">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#faa755">
</LinearLayout>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="请输入姓名"/>
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:text="请输入密码"
android:layout_height="60dp" />
<android.support.v7.widget.AppCompatButton
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="登录"
android:background="#00a6ac"/>
</LinearLayout>

常见的android控件  TextView 只读的文本控件   Plain  Text  可输入的文本控件

Button  按钮控件

九、Android项目Src源码

在源码中有一个MainActivity.java文件,文件打开如下

public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} }
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//调用父类的onCreate方法
super.onCreate(savedInstanceState);
//设置layout中对应的XML文件activity_main
setContentView(R.layout.activity_main);
//获取登录按钮
Button btn =(Button) findViewById(R.id.Login);
//设置按钮的监听事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//设置Text为本显示hello和日期
TextView show= (TextView) findViewById(R.id.show);
show.setText("hello"+new java.util.Date());
}
});
}
}

一:设置Activity使用的xml文件布局

二:获取ID为R.id.Login的按钮

三:将事件绑定在R.id.show的文本框中(其中findViewById其实是相当于js中的getElementById)

Java其实可以理解为Android应用资源字典

Res目录说明:res存放Android应用所用的全部资源,包括图片资源、字符串资源、颜色资源、尺寸资源等。

所有的资源都会在R.java中生成资源清单。

XML文件介绍:XML文件定义可用于定义常用的资源。

引用资源形式如下:@xml文件名/定义的xml文件,比如使用使用color中的定义的颜色

注意:定义的id标识符,不需要专门的xml资源定义

@+id/<标识符名称>

AndroidManifest.xml清单文件:(可在mainfest中配置权限、比如电话权限、录音权限等)

<!--指定Android应用包名 该包名可用于唯一表示该应用-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.demo2">
<!--指定Android应用标签、图标等-->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!--定义Android应用的一个组件:-->
<activity android:name=".MainActivity">
<intent-filter>
<!--指定Activity是程序入口-->
<action android:name="android.intent.action.MAIN" />
<!--指定加载应用时运行该Activity-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

物联网大赛 - Android学习笔记(一) Android概念的更多相关文章

  1. Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...

    下面是Android的学习笔记,原文地址. 我是使用adb devices出现如下红字错误, 使用第一种方法方法,结果关掉豌豆荚就可以了. android adb启动失败问题 adb server i ...

  2. Android学习笔记之Android Studio添加新的Activity

    1.创建Android项目工程:AndroidTest 创建过程可参考网上诸多教程. 2.添加新的Activity,步骤如下 a. 在layout文件夹上右键,New-Activity-相应Activ ...

  3. Android学习笔记之 android:collapseColumns ,android:shrinkColumns 和stretchColumns

    摘自:http://blog.csdn.net/sjf0115/article/details/7213565/ TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但 ...

  4. android学习笔记45——android的数据存储和IO

    android的数据存储和IO SharedPreferences与Editor简介 SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此其保存的数据主要是简单的类型的ke ...

  5. Android学习笔记之Android Studio下创建menu布局文件

    1.创建menu文件夹 Android Studio项目中如果没有menu文件夹,在res文件夹右键,new-Android resource directory: 则会弹出下图对话框,在Resour ...

  6. Android学习笔记_79_ Android 使用 搜索框

    1.在资源文件夹下创建xml文件夹,并创建一个searchable.xml: android:searchSuggestAuthorityshux属性的值跟实现SearchRecentSuggesti ...

  7. android学习笔记(9)android程序调试学习

    相应若水老师的第十四课 一,Log日志输出 Log.v(tag,message);        //verbose模式,打印最具体的日志  Log.d(tag,message);        // ...

  8. Android学习笔记(36):Android的两种事件处理方式

    Android提供了两种事件处理的方式:基于回调的事件处理 和 基于监听的事件处理. 我们来说的easy理解一点: (1)基于回调的事件处理就是继承GUI组件,并重写该组件的事件处理方法.除了一些特定 ...

  9. Android学习笔记(1)—Android Studio安装

    Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工 ...

  10. Android学习笔记1——Android开发环境配置

    一.JDK配置 Android是基于Java进行开发的,首先需要在电脑上配置JDK(Java Development Kit).在http://www.androiddevtools.cn/下载对应系 ...

随机推荐

  1. Running shell commands by C++

    #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; st ...

  2. mysql删除数据后不释放空间问题

    如果表的引擎是InnoDB,Delete From 结果后是不会腾出被删除的记录(存储)空间的. 需要执行:optimize table 表名; eg:optimize table eh_user_b ...

  3. NSString类里有个hash

    实际编程总会涉及到比较两个字符串的内容,一般会用 [string1 isEqualsToString:string2] 来比较两个字符串是否一致.对于字符串的isEqualsToString方法,需要 ...

  4. Android,iOS系统有什么区别

    两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制.Android是一种基于Linux的自由及开源的操作系统,iOS是由苹果公司开发的移动操作系统IOS中用于UI指令权限最高,安 ...

  5. my39_InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析

    MySQL InnoDB支持三种行锁定方式: 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. 间隙锁(Gap Lock): 锁定索引记录间隙,确保索引记录的间隙不变.间隙锁是 ...

  6. 【Java 8】Predicate详解

    一.java.util.function.Predicate 这里类是java自带主要广泛用在支持lambda表达式的API中. 1.接口源码 @FunctionalInterface public ...

  7. CDN服务的含义

    CDN的全称是Content Delivery Network,即内容分发网络.CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全 ...

  8. matplotlib如何绘制直方图、条形图和饼图

    1 绘制直方图: import matplotlib.pyplot as plt import numpy as np import matplotlib def hist1(): # 设置matpl ...

  9. pandas读取csv文件中文乱码问题

    1.为什么会出现乱码问题,用什么方式编码就用什么方式解码,由于csv不是用的utf-8编码,故不能用它解码. 常用的编码方式有 utf-8,ISO-8859-1.GB18030等. 2.中文乱码原因: ...

  10. windows下安装linux虚拟机(wsl2),并安装docker。

    一.windows terminal(重要工具,但也可以不装) 这是微软官方推荐的终端工具,类似mac的iterm2,可同时开启多个终端,最开始默认有power shall,cmd,可下载gsudo集 ...