筑基期

1. 什么是 Android?Android 应用的基本架构是什么?

Android 是由 Google 开发的开源移动操作系统,主要用于智能手机和平板电脑。

它基于 Linux 内核,并提供了丰富的应用开发框架,支持多种硬件平台和设备。

Android 应用的基本架构

  • 应用层:由用户安装和使用的应用程序组成,如拨号、短信、相机等。

  • 应用框架层:包括 Activity ManagerWindow Manager 等核心服务,用于管理应用的生命周期、界面等。

  • 系统运行库层:包含 Android Runtime 和各种 C/C++ 库,如 SQLiteWebKit 等。

  • 硬件抽象层(HAL:提供硬件与系统之间的接口,如摄像头、传感器等。

  • Linux 内核层:负责内存管理、设备驱动、网络堆栈等低层系统服务。


2. 什么是 Activity?Activity 的生命周期有哪些阶段?

ActivityAndroid 应用中的基本组件,负责管理用户界面和与用户的交互。每个 Activity 通常对应应用的一个屏幕。

Activity 的生命周期包括以下阶段

  • onCreate():当 Activity 首次创建时调用,用于初始化界面和数据。

  • onStart()Activity 从不可见变为可见时调用,但还未处于前台状态。

  • onResume()Activity 进入前台并开始与用户交互时调用。

  • onPause():当用户离开当前 Activity,但还未完全关闭时调用,通常用于保存数据或状态。

  • onStop():当 Activity 完全不可见时调用,通常用于释放不再需要的资源。

  • onDestroy():当 Activity 被销毁时调用,表示生命周期的结束。


3. 什么是 Intent?如何在 Activity 之间传递数据?

IntentAndroid 中用于描述应用间或组件间交互的对象。它可以启动新的 Activity,传递数据,启动服务等。

如何在 Activity 之间传递数据

通过 IntentputExtra() 方法可以附加数据,并使用 startActivity() 启动新的 Activity

示例

// 在第一个 `Activity` 中
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("message", "Hello from FirstActivity");
startActivity(intent);

// 在第二个 `Activity` 中
Intent intent = getIntent();
String message = intent.getStringExtra("message");

第一个 Activity 通过 putExtra() 将数据附加到 Intent,并传递到第二个 Activity,第二个 Activity 通过 getIntent() 获取传递过来的数据。


4. 什么是 Fragment?Fragment 和 Activity 有什么区别?

FragmentAndroid 中一种可以嵌入到 Activity 中的组件,它代表应用的部分界面或行为,允许构建更灵活的用户界面。

一个 Activity 可以包含多个 Fragment

区别

  • Activity:表示应用的一个完整屏幕,它是独立的,可以直接与用户交互。

  • Fragment:是 Activity 的一部分,它不能独立存在,必须嵌入到 Activity 中管理,通常用于处理部分界面或功能模块。

在一个平板设备上,可能一个 Activity 包含多个 Fragment,每个 Fragment 负责一个独立的模块,而在手机上,可能不同模块分布在不同的 Activity 中。


5. 如何在 Android 中管理 UI 布局?常见的布局类型有哪些?

Android 提供了多种布局方式,用于管理应用的 UI 结构。UI 布局可以通过 XML 文件定义,也可以在代码中动态生成。

常见的布局类型

  • LinearLayout:按垂直或水平方向排列子视图,可以设置子视图的排列顺序。

    • 示例:android:orientation="vertical"
  • RelativeLayout:通过相对定位子视图,如相对于父布局或其他视图的位置。

  • ConstraintLayout:一个更灵活的布局,可以用来创建复杂的布局,减少嵌套层级,提高性能。

  • FrameLayout:用于显示单个视图,所有子视图都堆叠在一起,后添加的视图会覆盖在前面的视图上。

  • GridLayout:将子视图按行和列排列,适用于网格状布局。

示例 XML 布局

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World"/>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click Me"/>
</LinearLayout>

6. 什么是 RecyclerView?它与 ListView 有什么区别?

RecyclerViewAndroid 中用于显示大规模数据集的高级视图容器,支持灵活的布局管理和高效的内存回收。

RecyclerViewListView 的区别

  • 性能RecyclerView 提供了更高效的内存回收机制,特别适合大数据列表的展示。

  • 布局管理RecyclerView 支持多种布局管理器,如线性布局、网格布局和瀑布流布局,而 ListView 仅支持线性布局。

  • 扩展性RecyclerView 更加模块化,提供了 AdapterViewHolderItemDecoration 等丰富的接口,方便开发者自定义布局和交互。

使用示例

RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
MyAdapter adapter = new MyAdapter(myDataset);
recyclerView.setAdapter(adapter);

通过 LayoutManager 设置 RecyclerView 的布局方式,并将自定义的 Adapter 绑定到 RecyclerView


7. 如何在 Android 中处理用户输入?常见的输入控件有哪些?

Android 中,用户输入是通过各种输入控件来处理的,开发者可以捕获用户的输入并响应事件。

常见的输入控件

  • EditText:用于文本输入的控件。

  • Button:用于触发点击事件的按钮。

  • CheckBox:用于用户选择多项的复选框。

  • RadioButtonRadioGroup:用于在多个选项中选择一个的单选按钮组。

  • Spinner:用于下拉选择的控件。

示例

// 处理按钮点击事件
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, "Button clicked!", Toast.LENGTH_SHORT).show();
    }
});

通过 setOnClickListener() 方法为 Button 设置点击事件处理器,当用户点击按钮时,将弹出提示消息。

results matching ""

    No results matching ""