本系列为《Android 第一行代码第三版》读书笔记

一、Android的版本与组件

由上面可见,Android的主要市场是在Android5.0版本以上。

Android的四大组件:

  • Activity:是Android应用程序的门面,在应用中可见的东西都是放在Activity里的
  • Service:在后台默默运行的组件
  • BroadcastReceiver:允许应用接收各处的广播消息,比如电话、短信等
  • ContentProvider:为应用程序之间共享数据提供帮助

二、Hello World

需要的基本条件:jdk、sdk、Android Studio

启动AS一路创建项目即可,选取创建一个空项目,注意选取语言为Kotlin,因为Google简易采用Kotlin来进行开发,同时指定Minimum SDK的版本为21,查找上面的版本表可以发现版本为21的为Android 5版本

创建一个空项目之后,AS已经默认生成了一个Hello World的Demo,只需要将程序进行打包运行即可,这里选择外部模拟器MuMu模拟器进行模拟运行。下载安装好MuMu模拟器,进入到如下目录

使用命令行命令:

adb_server.exe connect 127.0.0.1:7555

那么这就将AS与MuMu模拟器连接起来了,在AS中点击运行键即可连接运行!

那么程序运行成功!如上是我修改了Hello world为Hello,Android!之后的界面

三、项目目录分析

熟悉过Java Web开发便可知,项目核心部分在app部分,也是需要我们编写代码的部分,因为此项目是采用gradle进行搭建的,所以有一些编译型的文件,这里不过多介绍,值介绍一些非常核心的目录

  • mipmap系:用来放置图标的,有多个版本的文件夹,是为了适应不同的设备,介绍为了兼容性
  • values系:存放字符串、样式、颜色等配置的
  • layout系:存放布局文件的
  • drawable系:存放图片的
  • AndroidManifest.xml:整个项目的配置文件,在程序中定义的组件都需要在这个文件中注册

四、项目运行流程

分析一个Android项目,首先是从AndroidManifest.xml开发的,因为这是整个项目的配置文件

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.hellowrold">    <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/Theme.HelloWrold">        <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>

activity表示对MainActivity进行注册,而.表示省略包名,因为package中已经定义,其中intent-filter非常重要,看名字为一个拦截器,而其中定义了整个项目的主Activity,也就是项目的入口

接着分析MainActivity

class MainActivity : AppCompatActivity() {         override fun onCreate(savedInstanceState: Bundle?) {             super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)    }}

虽然语言是kotlin,但是不影响阅读,首先MainActivity是继承AppCompatActivity的,AppCompatActivity是AndroidX中提供的一种向下兼容的Activity,使得Activity在不同版本中的功能保持一致。

Activity类时Android系统提供的一个基类,项目中所有定义的Activity都必须继承它或者它的子类才具有一个Activity的特性,然后onCreate是一个其中的方法,相当于生命周期的方法

接着方法里面调用了setContentView方法,Android讲究逻辑与视图分离,所以在Activity是不写界面的,界面是放在局部文件里面的。可以看到setContentView中引入了一个activity_main布局

那么切换到布局文件夹layout,果然有一个activity_main.xml

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">    androidx.constraintlayout.widget.ConstraintLayout>

五、Android的日志工具Log

  • Log.v() 。用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种。
  • Log.d() 。用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比verbose高一级。
  • Log.i() 。用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别info,比debug高一级。
  • Log.w() 。用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级。
  • Log.e() 。用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比warn高一级。
    出现警告的地方。对应级别warn,比info高一级。
  • Log.e() 。用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比warn高一级。

更多相关文章

  1. 创建一个ArcGIS for Android(安卓)新项目并显示出本地的地图
  2. Android工具箱之Context解析
  3. 记录一下八款开源 Android(安卓)游戏引擎
  4. 记录一下八款开源 Android(安卓)游戏引擎
  5. [Android] 基于 Linux 命令行构建 Android(安卓)应用(一):关于 Andr
  6. Android小项目合集(经典教程)包含十五个Android开发应用实例
  7. Android(安卓)SDK版本和ADT版本
  8. Android动画效果生动有趣的通知NiftyNotification(Android(安卓)T
  9. Android动画效果生动有趣的通知NiftyNotification(Android(安卓)T

随机推荐

  1. zTree.js 异步加载地区例子
  2. jQuery ajax循环和迭代范围
  3. 制作一个基本的angularjs应用程序对我不
  4. 不能让noUISlider工作
  5. iOS中html传数据给原生
  6. 使用wordpress制作Javascript幻灯片
  7. js基础应用-打字机,震动窗口
  8. JavaScript中当前脚本的URL
  9. javascript ArrayBuffer,它的用途是什么?
  10. javascript: 如何编写适合FireFox的对话