当前位置:   article > 正文

Android知识总结_android 知识体系

android 知识体系

目录

一、Android介绍

二、Android使用的工具

三、android四大组件

四、Activity的生命周期

 五、代码与效果展示

六、Android学习的总结:


一、Android介绍

Android应用开发是指使用Java或Kotlin等编程语言和Android Studio等开发工具来创建在Android操作系统上运行的应用程序的过程。这些应用程序可以在Android设备上或通过Google Play商店发布供其他用户下载和使用。开发人员可以使用各种API和库来访问设备硬件和系统功能,如摄像头、传感器、存储、网络连接等,以构建各种类型的应用程序,包括游戏、社交媒体、工具、商务应用等。

二、Android使用的工具

1. Android Studio:Android Studio是一种*安卓官方支持的免费开发工具,它是由Google推出的一款基于IntelliJ IDEA的集成开发环境,提供了强大的编辑器、调试工具以及其他应用开发所需的功能及工具。

2. Eclipse:Eclipse是一款通用的开源集成开发环境,可以用于开发Java应用程序,也可以用于开发Android应用程序,支持Android开发的插件有ADT(Android Development Tools)和ANDROID SDK(Software Development Kit)。

3. IntelliJ IDEA:IntelliJ IDEA是一款基于Java语言开发的集成开发环境,可以用来开发Android应用程序,提供了强大的编辑器和调试工具。

4. Android NDK:Android NDK是Android开发技术的一个重要组成部分,可以用来编写原生代码,以更高效的方式实现更复杂的功能。

三、android四大组件

1、activity

Activity可以看成是安卓系统的根本,在这个根本上才可以进行其他的工作,因为在安卓系统里运行的所有的程序,它的流程都必须在【Activity】中运行,所有他是最基本的模块。它的作用是一个框架或页面,每个程序会有多个【Activity】组成。

(1)一个Activity通常就是一个单独的屏幕(窗口)。

(2)Activity之间通过Intent进行通信。

(3)android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。

2、service

Service是安卓里非常很重要的组件,它的地位和优先级别是与活动相似的,不过Service不能够自己运行,它只能在安卓的后台运行。它的作用就是与安卓的其他逐渐进行交互,举个简单例子:当我们打开手机上音乐播放器并将它放到后台,此时播放的音乐就是由Service在负责控制。

1)service用于在后台完成用户指定的操作。service分为两种:

  • started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。

  • bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。

2)startService()与bindService()区别:

  • started service(启动服务)是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。

  • 使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。

3)开发人员需要在应用程序配置文件中声明全部的service,使用<service></service>标签。

4)Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。

3、content provider(内容提供商)

内容提供商这个组件是专门为第三方应用而设计的,它非常的灵活,而且相当重要,它会为所有的应用准备一个内容窗口,并且保留数据库、文件,作用就是我们在使用这些第三方软件的时候,可以有效的访问,并且保护里面的数据。

1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。

2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。

3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。

4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。

5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

4、broadcast receiver(广播接收器)

在安卓系统中,广播接收器并不是直接就可以看到的,它是程序之间传递信息时的一种机制,作用就是接收或者发送通知。通俗的来说广播接收器更像是一种传递组件,它能够将信息接收,甚至还可以对它进行过滤然后进行响应。

1)你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

2)广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。

3)动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

四、Activity的生命周期

每个对象都有一个从创建到销毁的历程,及该对象的生命周期。Activity也有其相应的生命周期。Android系统会判断应用程序Activity是属于哪一个类,给予不同的Activity生命周期。

android中activity的生命周期可以分为四类:foreground process(前景模式)、visible process(可见模式)、background process(背景模式)、empty process(空白模式)

 五、代码与效果展示

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#ffaaffcc">
  6. <TextView
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:textSize="30sp"
  10. android:text="layout1"/>
  11. </LinearLayout>
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#ffaaccff">
  6. <TextView
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:textSize="30sp"
  10. android:text="layout2"/>
  11. </LinearLayout>
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#ffaacc00">
  6. <TextView
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:textSize="30sp"
  10. android:text="layout3"/>
  11. </LinearLayout>
  1. package com.example.myapplication;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import androidx.viewpager.widget.ViewPager;
  4. import android.os.Bundle;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. public class ViewPagerActivity extends AppCompatActivity {
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_view_pager);
  14. LayoutInflater lf = getLayoutInflater().from(this);
  15. View view1 = lf.inflate(R.layout.view_pager_layout_1,null);
  16. View view2 = lf.inflate(R.layout.view_pager_layout_2,null);
  17. View view3 = lf.inflate(R.layout.view_pager_layout_3,null);
  18. List<View> viewList=new ArrayList<>();
  19. viewList.add(view1);
  20. viewList.add(view2);
  21. viewList.add(view3);
  22. ViewPager viewPager = findViewById(R.id.vp);
  23. ViewPagerAdapter viewPagerAdapter=new ViewPagerAdapter(viewList);
  24. viewPager.setAdapter(viewPagerAdapter);
  25. }
  26. }
  1. package com.example.myapplication;
  2. import android.view.View;
  3. import android.view.ViewGroup;
  4. import androidx.annotation.NonNull;
  5. import androidx.viewpager.widget.PagerAdapter;
  6. import java.util.List;
  7. public class ViewPagerAdapter extends PagerAdapter {
  8. private List<View> mListView;
  9. public ViewPagerAdapter(List<View> mListView){
  10. this.mListView=mListView;
  11. }
  12. @NonNull
  13. @Override
  14. public Object instantiateItem(@NonNull ViewGroup container, int position) {
  15. container.addView(mListView.get(position),0);
  16. return mListView.get(position);
  17. }
  18. @Override
  19. public int getCount() {
  20. return mListView.size();
  21. }
  22. @Override
  23. public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
  24. return view==object;
  25. }
  26. @Override
  27. public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
  28. container.removeView(mListView.get(position));
  29. }
  30. }

六、Android学习的总结:

1.学习Java编程语言:学习Android开发前需要掌握Java编程语言,包括面向对象的思想、语法、异常处理、集合等。

2.掌握Android基本概念:了解Android系统架构、Activity、Service、Broadcast Receiver、Content Provider等基本概念,这些知识点是后续学习的基础。

3.学习Android开发工具:了解Android Studio开发工具的使用方法,包括如何创建项目,如何使用布局编辑器、调试等。

4.掌握Android界面设计:学习如何使用XML设计Android应用的界面,包括布局、控件、样式等。

5.熟悉Android应用开发流程:了解开发Android应用的流程,包括项目创建、资源管理、构建、调试和发布等。

6.学习移动网络开发:了解如何使用Android开发网络应用,包括HTTP、TCP、UDP、Socket等常用网络协议和技术。

7.学习数据存储:了解Android中的数据存储方式,包括Shared Preferences、SQLite数据库、文件存储等。

8.学习多媒体处理:了解如何开发Android中的多媒体应用,包括音频、视频、图像处理等。

9.掌握Android高级开发技术:学习Android中的高级开发技术,包括多线程编程、性能优化、调试技巧等。

10.学习Android生命周期:了解Android应用中各个组件的生命周期,包括Activity、Service、Broadcast Receiver等。

以上是我对Android学习的总结,希望能对你有所帮助!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/41182?site
推荐阅读
相关标签
  

闽ICP备14008679号