Android的历史

安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。

Android体系结构

Android项目的目录结构

  • Activity:应用被打开时显示的界面
  • src:项目代码
  • R.java:项目中所有资源文件的资源id
  • Android.jar:Android的jar包,导入此包方可使用Android的api
  • libs:导入第三方jar包
  • assets:存放资源文件,比方说mp3、视频文件
  • bin:存放编译打包后的文件
  • res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源id
  • drawable:存放图片资源
  • layout:存放布局文件,把布局文件通过资源id指定给activity,界面就会显示出该布局文件定义的布局
  • menu:定义菜单的样式
  • Strings.xml:存放字符串资源,每个资源都会有一个资源id

Android的配置文件(清单文件)

  • 指定应用的包名

      package="com.itheima.helloworld"
    
    • data/data/com.itheima.helloworld(上面代码指定的包名)
    • 应用生成的文件都会存放在此路径下
  • Android的四大组件在使用前全部需要在清单文件中配置

  • 的配置对整个应用生效

  • 的配置对该activity生效


DDMS

  • Dalvik debug monitor service
  • Dalvik调试监控服务

常用的adb指令

Android debug bridge:安卓调试桥

  • adb start-server:启动adb进程
  • adb kill-server:杀死adb进程
  • adb devices:查看当前与开发环境连接的设备,此命令也可以启动adb进程
  • adb install XXX.apk:往模拟器安装apk
  • adb uninstall 包名:删除模拟器中的应用
  • adb shell:进入linux命令行
  • ps:查看运行进程
  • ls:查看当前目录下的文件结构
  • netstat -ano:查看占用端口的进程

电话拨号器

功能:用户输入一个号码,点击拨打按钮,启动系统打电话的应用把号码拨打出去

1. 定义布局

  1. 组件必须设置宽高,否则不能通过编译

     android:layout_width="wrap_content"android:layout_height="wrap_content"
    
  2. 如果要在java代码中操作某个组件,则组件需要设置id,这样才能在代码中通过id拿到这个组件

     android:id="@+id/et_phone"
    

2. 给按钮设置点击侦听

  1. 给按钮设置侦听

      //通过id拿到按钮对象Button bt_call = (Button) findViewById(R.id.bt_call);//给按钮设置点击bt_call.setOnClickListener(new MyListener());
    

3. 得到用户输入的号码

 //得到用户输入的号码,先拿到输入框组件EditText et_phone = (EditText) findViewById(R.id.et_phone);String phone = et_phone.getText().toString();

4. 把号码打出去

  1. Android系统中基于动作机制,来调用系统的应用,你告诉系统你想做什么动作,系统就会把能做这个动作的应用给你,如果没有这个应用,会抛异常

  2. 设置动作,通过意图告知系统

     //把号码打出去//先创建一个意图对象Intent intent = new Intent();//设置动作,打电话intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:" + phone));//把意图告诉系统startActivity(intent);
    
  3. 添加权限

     <uses-permission android:name="android.permission.CALL_PHONE"/>
    

@源码
AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.administrator.myapplication"><uses-permission android:name="android.permission.CALL_PHONE"/><applicationandroid:allowBackup="true"android:icon="@mipmap/chrome"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="请输入电话号码"/><EditTextandroid:id="@+id/et_phone"android:layout_width="match_parent" android:layout_height="wrap_content"android:text="132313123135"/><Button android:id="@+id/bt_call" android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="拨打"/></LinearLayout>

MainActivity

package com.example.administrator.myapplication;import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//给按钮设置监听//得到按钮对象Button button = findViewById(R.id.bt_call);//设置监听button.setOnClickListener(new MyListener());}class MyListener implements View.OnClickListener{@Overridepublic void onClick(View v) {System.out.println("按钮被点击了");EditText editText = findViewById(R.id.et_phone);String phone = editText.getText().toString();//创建意图对象Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+phone));//把动作告诉系统startActivity(intent);}}
}

@效果演示


点击事件的四种写法

第一种

  • 定义一个MyListener实现onClickListener接口

      Button bt1 = (Button) findViewById(R.id.bt1);bt1.setOnClickListener(new MyListener());
    

第二种

  • 定义一个匿名内部类实现onClickListener接口

      Button bt2 = (Button) findViewById(R.id.bt2);bt2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {System.out.println("第二种");}});
    

第三种

  • 让当前activity实现onClickListener接口

      Button bt3 = (Button) findViewById(R.id.bt3);bt3.setOnClickListener(this);
    

第四种

  • 给Button节点设置onClick属性,

       android:onClick="click"
    
  • 然后在activity中定义跟该属性值同名的方法

      public void click(View v){System.out.println("第四种");}
    

短信发送器

功能:用户输入号码和短信内容,点击发送按钮,调用短信api把短信发送给指定号码

1. 定义布局

  • 输入框的提示

      android:hint="请输入号码"
    

2. 完成点击事件

  • 先给Button组件设置onClick属性
  •   onClick="send"
    
  • 在Activity中定义此方法
  •   public void send(View v){}
    

3. 获取到用户输入的号码和内容

 EditText et_phone = (EditText) findViewById(R.id.et_phone);EditText et_content = (EditText) findViewById(R.id.et_content);String phone = et_phone.getText().toString();String content = et_content.getText().toString();

4. 调用发送短信的api

 //调用发送短信的apiSmsManager sm = SmsManager.getDefault();//发送短信sm.sendTextMessage(phone, null, content, null, null);
  • 添加权限

       <uses-permission android:name="android.permission.SEND_SMS"/>
    
  • 如果短信过长,需要拆分

      List<String> smss = sm.divideMessage(content);
    

Android入门笔记01相关推荐

  1. 【mysql入门笔记01 2022.9.27】

    mysql入门笔记01 2022.9.27 数据库概念 数据库管理系统 关系型数据库(RDBMS) 非关系型数据库(NoSQL) SQL概念 Mysql 版本 Mysql安装 Mysql启动 方式一 ...

  2. Android入门笔记之更改手机屏幕方向

    Android入门笔记之更改手机屏幕方向 <1>简介 通过一个按钮组来改变横屏竖屏显示. <2>关键步骤 主要通过android.app.activity.getRequest ...

  3. ESP32 入门笔记01:乐鑫ESP32-DevKitC开发板信息、开发环境搭建以及学资料准备

    文章目录 一.ESP32-DevKitC 开发板介绍 二.ESP32 开发环境 1. Arduino IDE 1.1 开发环境搭建步骤 1.2 实验:使用 Arduino IDE 将代码上传到 ESP ...

  4. 【Android基础笔记01】Android开发环境搭建和HelloWorld

    最近手头项目3.0版本要上线了, 没有那么多工作压力了, 抽空看了看之前在云笔记上做的笔记 都是一些基础知识 给大家分享出来吧 一.什么是Android?[了解 ] Android(中文俗称安卓)是一 ...

  5. SolidWorks 入门笔记01:草图绘制

    全文目录 简介 1. 草图的创建 1.1 在基准面上新建一个二维草图 多学一招:退出草图绘制模式,快捷键切换视图 1.2 从已有的草图派生新的草图. 1.3 在零件的平面上绘制草图 多学一招:Soli ...

  6. 前端入门笔记01 —— html

    一些框架 html中如果要改内容要放在<body> </body>之间 <html lang = en><head><meta charset = ...

  7. linux入门笔记01

    目录 目录 一.linux安全模型 1.用户: 2.用户组: 3.进程 二.用户.用户组管理及权限设置 1.用户管理 1.1.用户的增删改查 1.2.用户密码的增删改查 2.用户组管理 2.1.用户组 ...

  8. 【deepctr】学习入门笔记01

    目录 了解 准备工作 1.下载包 2.导入pycharm 3.导入所需包 代码(例:run_classification_criteo.py) 导入所需包 数据预处理 1.对稀疏特征进行标签编码,对稠 ...

  9. 路飞学城python电子书_路飞学城python入门笔记01

    机器语言:优点最底层,速度最快,缺点最复杂,开发效率最低 汇编语言:有点比较底层,速度最快,缺点最复杂,开发效率最低 高级语言: 高级语言所编制的程序不能直接被计算机识别 必须经过转换才能被执行 按转 ...

  10. SolidWorks 入门笔记02:三维实体(特征)

    全文目录 特征分析 零件三维实体建模的基本过程 1.草绘特征 1.1 拉伸 1.1.1 拉伸凸台/基体 1.1.2 拉伸薄壁特征 1.1.3 拉伸切除特征 练习 - 销钉 1.2 旋转 1.2.1 旋 ...

最新文章

  1. install vim plugin local file offline
  2. git切换ssh和http协议
  3. linux下 SCP 、ssh、ssh-copy-id采用非默认端口传输
  4. future 线程报错后_线程池运用实例——一次错误的多线程程序设计以及修复过程...
  5. 计算机组成原理存储结构,计算机组成原理与体系结构----存储系统
  6. 关于大学生玩网络游戏的调查问卷
  7. Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )
  8. 模拟linux内核异常,Linux内核异常
  9. 项目介绍star原理_这个 Python 项目厉害了!多个实战案例教你分析时空数据处理...
  10. android dialog动画_Android超级酷炫实用的UI框架
  11. 编写代码模拟三次密码输入的场景。
  12. 欢迎甲方跳槽到云厂商
  13. 台式电脑显示无法连接服务器,台式电脑无法连接网络怎么办
  14. 外贸常用术语_常见国际贸易专业术语有哪些?
  15. 【社区周会】2021-04-27 内容概要
  16. 【吴刚】电商网站详情页设计初级入门标准视频教程-吴刚-专题视频课程
  17. python 100days github_GitHub - fxianchao/Python-100-Days: Python - 100天从新手到大师
  18. 五、《图解HTTP》报文首部和HTTP缓存
  19. 内存自动清理.sql
  20. 腐肉为引,气球为信,负重前行,只为爱你

热门文章

  1. 以前的东西-Mvp2
  2. simulink 学习(二)
  3. Pytorch模型参数的访问、初始化和共享
  4. “钱景”没了?莫慌,内容创业还有七大红利
  5. 区块链安全:基于区块链网络攻击的方式原理详解
  6. PHPCMS 使用图示和PHPCMS二次开发教程(转)
  7. 标签树状结构JSP中树状图的代码实现
  8. 学习FFmpeg API – 解码视频
  9. Python自然语言处理学习笔记(60):7.1 信息抽取
  10. CCF 201809-2 买菜