[《第一行Android代码》读书笔记]第1章 开始启程——你的第一行Android代码

第1章 开始启程——你的第一行Android代码

1.1 Android系统四层架构:(从底至顶)

  • Linux内核层:为Android设备的各种硬件提供底层驱动,如显示驱动、音频驱动、照相机驱动等

  • 系统运行库层

    • 通过一些C/C++库为Android系统提供主要的特性支持,如SQLite库提供了数据库的支持
    • Android运行时库,主要提供了一些核心库,开发者可以使用Java语言编写程序
    • 包含Dalvik虚拟机(5.0系统后改为ART运行环境)
  • 应用框架层:提供构建应用程序时用到的各种API

  • 应用层:安装在手机上的应用程序,包括系统自带的联系人、短信等,或者自己在应用商店下载的微信等

架构具体如下图:

=图1.1 Android系统架构=

1.2 Android应用开发特色

  1. 四大组件

    • 活动(Activity):应用程序的前台
    • 服务(Service):应用程序的后台
    • 广播接收器(Broadcast Receiver):接收广播信息,比如电话、短信等
    • 内容提供器(Content Provider):使得应用程序之间可以共享数据
  2. 丰富的系统组件

  3. SQLite数据库:Android系统自带,是一种轻量级、速度快的嵌入式关系型数据库

  4. 强大的多媒体

  5. 地理位置定位

1.3 搭建开发环境

需要准备的工具:

  • JDK
  • Android SDK:谷歌提供的Android开发工具包
  • Android Studio

1.4 Android程序部分重要目录或文件

文件名 作用
java 放置所有java代码
res 放置资源文件,比如图片、布局等
AndroidManifest.xml 项目配置文件,在这里声明组件、添加权限声明等
build.gradle app模块的gradle构建脚本,在这里指定项目构建相关的配置
libs 放置第三方jar包

AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloworldapplication">
    <application
        ...
        <!--对MainActivity这个活动进行注册-->
        <activity android:name=".MainActivity">
            <intent-filter>
                <!--下面两行代码表示MainActivity是这个项目的主活动-->
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

MainActivity

public class MainActivity extends AppCompatActivity {
//继承于AppCompatActivity,实现向下兼容
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//引入activity_main布局
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</LinearLayout>

1.5 使用Android的日志工具Log

方法 作用
Log.v() 对应级别verbose。打印一些最为琐碎、意义最小的日志信息
Log.d() 对应级别debug。打印一些调试信息
Log.i() 对应级别info。打印一些比较重要的数据
Log.w() 对应级别warn。打印一些警告信息
Log.e() 对应级别error。打印程序的错误信息

使用Log而不使用System.out:System.out不可控制日志打印、打印时间无法确定、不能添加过滤器、日志没有级别区分…

发布了3 篇原创文章 · 获赞 2 · 访问量 73

猜你喜欢

转载自blog.csdn.net/weixin_41297079/article/details/104402444