Android学习笔记
1. 引言
Android操作系统由Google公司开发,基于Linux内核,是当前全球最流行的移动设备操作系统之一,本笔记旨在记录我在学习Android开发过程中的心得体会和重要知识点,帮助自己巩固所学内容,同时也为其他初学者提供参考。
2. Android系统架构
2.1 Linux内核层(Linux Kernel)
功能:提供核心系统服务如安全、内存管理、进程管理、网络堆栈及驱动模型等。
作用:作为硬件与其他软件层的抽象层,允许各种硬件平台运行Android。
2.2 硬件抽象层(Hardware Abstraction Layer, HAL)
功能:将特定硬件实现细节与上层隔离开,提供统一的接口。
作用:使得Android系统能够适配不同厂商生产的设备。
2.3 运行时库层(Runtime Libraries)
包含:C标准库(libc)、多媒体框架(OpenGL ES、SQLite等)。
作用:支持应用软件开发中常用的功能需求。
24. 应用程序框架层(Application Framework)
组件:活动管理器、窗口管理器、内容提供者、视图系统等。
作用:简化了组件重用,任何应用程序都可以发布自己的功能块供其他应用程序使用。
2.5 应用程序层(Applications)
类型:包括电话拨号程序、SMS短消息程序、浏览器等核心应用以及用户安装的所有第三方应用。
作用:直接面对最终用户,满足日常使用需求。
3. 开发环境搭建
1 JDK安装
步骤:
下载并安装最新版本的Java Development Kit (JDK)。
配置环境变量JAVA_HOME
指向JDK的安装目录。
确保PATH
变量中包含了bin
文件夹路径。
2 Android Studio安装
步骤:
访问[Android Studio官网](https://developer.android.com/studio),根据操作系统选择合适的版本进行下载。
安装完成后启动Android Studio,并通过向导创建第一个项目来测试环境是否正确设置。
3 SDK配置
操作:
打开Android Studio后进入Settings
>Appearance & Behavior
>System Settings
>Android SDK
。
在此处可以添加或删除特定版本的SDK平台包及其他工具集。
4. 基础UI组件介绍
1 TextView
属性 | 描述 |
text | 设置显示的文字内容 |
textSize | 指定字体大小 |
textColor | 改变文字颜色 |
gravity | 控制文本对齐方式 |
2 EditText
属性 | 描述 |
hint | 输入框为空时显示的提示信息 |
inputType | 定义键盘类型(如数字、文本等) |
maxLines | 限制最大输入行数 |
singleLine | 是否允许多行输入 |
3 Button
属性 | 描述 |
text | 按钮上的文字标签 |
onClick | 指定点击事件的处理方法 |
background | 设置背景样式或颜色 |
4 ImageView
属性 | 描述 |
src | 图片资源ID或者URI地址 |
scaleType | 图片缩放方式(centerCrop, fitCenter等) |
adjustViewBounds | 根据图像比例调整控件尺寸 |
5. Intent与Activity生命周期
1 Intent概念
定义:Intent是一种用于在不同组件间传递信息的机制,它可以启动新的Activity、Service或者发送广播。
类型:显式Intent(明确指定目标组件)和隐式Intent(通过action或其他条件匹配合适的组件)。
2 Activity生命周期方法
方法名称 | 调用时机 |
onCreate() | 当Activity被首次创建时调用 |
onStart() | 当Activity对用户可见时调用 |
onResume() | 当Activity准备好与用户交互时调用 |
onPause() | 当系统即将暂停Activity时调用(例如接电话) |
onStop() | 当Activity完全不可见时调用 |
onDestroy() | 当Activity即将被销毁前调用 |
onRestart() | 当Activity从不可见状态恢复时调用 |
6. SQLite数据库操作
1 SQLite简介
特点:轻量级、嵌入式关系型数据库管理系统。
用途:适用于手机等移动设备上的数据存储需求。
6.2 SQLiteOpenHelper类
方法 | 说明 |
getWritableDatabase() | 获取可写的数据库实例;如果不存在则创建之若存在则直接返回现有实例。 |
getReadableDatabase() | 获取只读模式下的数据库实例。 |
onCreate(SQLiteDatabase db) | 当数据库第一次创建时会被调用,在这里编写初始化表结构等代码。 |
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) | 当数据库版本号发生变化时执行的操作,通常用来升级旧版数据库到新版。 |
3 CRUD操作示例
// 插入数据 ContentValues values = new ContentValues(); values.put("name", "Alice"); values.put("age", 25); db.insert("users", null, values); // 查询数据 Cursor c = db.query("users", null, "name=?", new String[]{"Alice"}, null, null, null); if (c != null && c.moveToFirst()) { String name = c.getString(c.getColumnIndex("name")); int age = c.getInt(c.getColumnIndex("age")); Log.d("TAG", "Name: " + name + ", Age: " + age); } finally { if (c != null) { c.close(); } } // 更新数据 ContentValues args = new ContentValues(); args.put("age", 26); db.update("users", args, "name=?", new String[]{"Alice"}); // 删除数据 db.delete("users", "name=?", new String[]{"Alice"});
7. RecyclerView的使用
1 RecyclerView简介
优势:高效地处理大量数据项,仅加载屏幕上可见的部分,节省内存消耗。
组成:Adapter负责绑定数据源到视图;LayoutManager决定如何排列这些视图。
2 基本用法示例
// 布局文件item_view.xml定义单个项目的布局结构 <LinearLayout ...> <TextView android:id="@+id/textView" .../> </LinearLayout> // 主活动中设置RecyclerView RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 垂直列表形式展示 MyAdapter adapter = new MyAdapter(dataList); // dataList是待显示的数据集合 recyclerView.setAdapter(adapter);
3 MyAdapter实现要点
构造函数:接收一个包含所有条目数据的列表作为参数。
onCreateViewHolder():创建一个新的ViewHolder实例。
onBindViewHolder():将特定位置的数据绑定到相应的ViewHolder上。
getItemCount():返回数据集的大小。
是我在学习Android开发过程中的一些归纳和归纳,希望能对你有所帮助!如果你有任何疑问或建议,欢迎随时与我交流讨论。