GVKun编程网logo

从事Android开发这么多年了,你知道初、中,ndk开发环境(android ndk开发)

20

本文将分享从事Android开发这么多年了,你知道初、中,ndk开发环境的详细内容,并且还将对androidndk开发进行详尽解释,此外,我们还将为大家带来关于01_Android应用开发环境_03_

本文将分享从事Android开发这么多年了,你知道初、中,ndk开发环境的详细内容,并且还将对android ndk开发进行详尽解释,此外,我们还将为大家带来关于01_Android应用开发环境_03_开发环境搭建及简单Android程序、2-6 Flutter开发环境与Android开发环境设置实操(Windows)、<转>Android研究-Android系统编译、SDK编译、ADT编译、Android开发环境建立、Android Jetpack架构开发组件化应用实战,ndk开发教程的相关知识,希望对你有所帮助。

本文目录一览:

从事Android开发这么多年了,你知道初、中,ndk开发环境(android ndk开发)

从事Android开发这么多年了,你知道初、中,ndk开发环境(android ndk开发)

高级

对于高级Android开发工程师,就不仅限于功能和业务开发,还需要深入理解Android系统的运行原理,达到融会贯通,部分可够作为Android端架构师。这一阶段的人大多工作5-8年,具备开源库设计能力,同时对于Android系统的运行原理也比较了解。

  • 掌握java高级特性,如JUC、线程池、NIOBIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。

  • 对Android运行环境有深入理解,理解Android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。

  • 掌握热修复原理,各大厂商方案的优缺点。

  • 对于Android事件分发有深入理解,重点掌握触摸事件机制。

  • 深入理解Android绘制原理,理解VSYNC和surface机制和窗口原理。

  • 深入理解Android动画原理,包括补间动画和属性动画。

  • 对于Android安全机制有基本认知,理解Android安全原理。

  • 深入理解端上设计范式思想,如mvcmvpmvvmclean-arch等。

  • 理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。

  • 对新技术敏感,理解掌握下一代架构dynamic feature等。

如果达到这一水平,恭喜你,你已经超过70%左右的人,但是如果要再进一步,比如架构中/开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。

专家

作为Android开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。

  • 理解微服务、SOA思想,对于后端开发有一定涉猎。

  • 了解前端研发工具和思想,知道vue react等研发框架。

  • 深入理解跨端技术,如phonegap、weex/RN Flutter、小程序快应用等。

我这里有一份Android中高级进阶的成长曲线图,里面涉及到的都是现在市场主流技术,大家可以参考针对自己的实际情况进行学习。

最后

不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。

如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大。

在我学习的过程中,最开始是在网上找了很多资料,毕竟这些资料是我们开始最快速的学习方法,这里我放上我这些年在网上收集到的资料,然后再以我的工作经验给大家总结一下,让你们少走些弯路,提取一些目前互联网公司最主流的Android开发架构技术,希望能帮助到大家!

【Android进阶学习视频】、【全套Android面试秘籍


】点击【GitHub】地址查看免费领取方式!

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【算法合集】

【延伸Android必备知识点】

【Android部分高级架构视频学习资源】

Android必备知识点】**

【Android部分高级架构视频学习资源】

01_Android应用开发环境_03_开发环境搭建及简单Android程序

01_Android应用开发环境_03_开发环境搭建及简单Android程序

搭建开发环境,创建模拟器,最后完成一个简单的Android版应用程序并介绍项目目录。

1 搭载Android开发环境

1.1 安装Eclipse和ADT

    下载Android SDK。SDK的全称是软件开发工具包(Software Development Kit),Android SDK提供了一些开发Android所必须的API库以及开发工具,用于开发测试和调试Android应用程序。ADT是一个Eclipse的插件,它包含了一些使用Eclipse开发Android应用程序所需要的工具包。曾经搭载Android开发环境需要单独下载Eclipse、Android SDK,ADT等并且还需要对其各种组件之间进行配置关联,现在只需要访问如下网址进行下载: http://developer.android.com/sdk/index.html

    对于Windows平台而言,只需要点击Download the SDK ADT Bundle for Windows,并根据本机的系统,选择32-bit或者64-bit,即可下载完整的ADT包。

在这个下载好的ADT包中,包含了开发Android应用所需要的所有工具。包括:

1. 安装了ADT插件的Eclipse

2. Android SDK工具包

3. Android版本工具包

4. Android最新版本的SDK

5. Android模拟器

解压缩下载的文件,可以看到这样的目录结构:

image

    其中eclipse文件夹下是一个精简版的Eclipse IDE,并且预装了ADT插件。sdk文件夹下,是Android的SDK,包含了与Android SDK相关的内容,在默认情况下\sdk\platforms目录下只包含了最新版本的Android SDK。因为Android系统存在多个版本,如果需要开发其它版本的Android应用程序,还需要下载其它版本的SDK,这需要通过SDK Manager进行下载。

1.2 下载其它版本的Android SDK

    ADT包中只包含了最新版本的Android SDK,当需要开发其它版本的Android应用程序的时候,需要通过SDK Manager进行下载。

    运行SDK Manager,如下图显示:

image

    先来看看其它几个目录结构,Tools目录下包含了一些Android开发的标准工具。展开见已下载了必须的一些开发工具,如下图:

image

Extras中也包含了一些扩展工具已经帮我们下载好了,这里介绍对这些扩展工具进行简单介绍:

  • Android Support Repository:Android版本扩展的知识库。
  • Android Support Library:Android向下兼容的扩展包,因为Android的版本繁杂,扩展包可以使高版本的一些特性对低版本进行兼容。
  • Google USB Driver: USB的驱动。在使用真机进行调试时,需要下载这个驱动。
  • Intel x86 Emulator Accelerator:针对Intel处理器上运行模拟器的加速器。在当前开发机器使用i3以上型号的Intel处理器时,可以勾选此项下载,可以加快模拟器启动速度。
  • Google Xxx:以Google开头的工具是一些由Google提供的服务,如果有需要可以一一下载。

接下来再来看看不同版本的SDK里包含了一些什么,这里以Android4.3为例:

image

对其中项目,分别进行简单讲解:

  • SDK Platform:当前平台的jar包。
  • Samples for SDK:SDK里API的简单示例代码。
  • ARM EABI v7a System Image:模拟器的镜像运行在ARM的处理器上。
  • Intel x86 Atom System Image:模拟器的镜像运行在Intel的处理器上。
  • Google APIs:Google服务的API。
  • Sources for Android SDK:Android SDK的源码。
2 创建模拟器(AVD)

    在成功安装Android的开发环境之后,还不能马上进行Android的开发。因为Android应用程序需要在Android的系统上运行,虽然现在Android设备越来越便宜,但是并不能要求所有学习者都去买一部Android设备才能开始学习,因此Android提供了一个模拟器(AVD)来模拟一台Android手机,本小节将讲解如何创建一个Android模拟器。

    模拟器(AVD)的英文全称是Android Virtual Device,它可以通过Android模拟器管理器来创建。在Eclipse中,点击如下图标开启Android Virtual Device Manager。

image

    当Android Virtual Device Manager被开启之后,默认是没有模拟器的,需要我们创建:

    点击Device Definitions,选取一个分辨率进行模拟器的创建。这里选择的是3.2寸的QVGA屏。

    选定屏幕分辨率之后,点击"Create AVD…",开始创建一个新的模拟器。

创建一个模拟器需要设置很多属性,这里对其一一进行简单的介绍:

  • AVD Name:当前模拟器的名字。
  • Device:设备的尺寸。
  • Target:当前Android的版本,包括当前环境下所有下载好的SDK版本号。
  • CPU/ABI:选择模拟器使用的CPU类型,如果使用的Intel并且是I3以上处理器的,可以选择Intel,这样模拟器的启动会快一点。
  • KeyBorad:是否包含键盘。
  • Skin:是否使用皮肤。
  • Back Camera:是否模拟后置摄像头,Webcm0之后会使用电脑的摄像头模拟手机的摄像头。
  • Memory Options:存储,设置RAM和堆的大小。
  • Internal Storage:设置内部存储器的大小,设置的内部存储器大小为真实硬盘的空间,建议200即可。
  • SD Card:模拟一个SDK卡,并设置其大小,设置的SD卡大小为真实硬盘的空间,建议32即可。
  • Snapshot:支持保存快照,不推荐勾选,会有不明BUG。
  • Use Host GPU:启用GPU硬件加速,如果当前计算机是独立显卡,推荐勾选。
3 简单的Android程序

    依次点击:File→New→Android Application Project,创建一个新的Android项目。如下图:


4 Android项目结构分析

image

上图为Eclipse的Package Explorer中显示的HelloWord应用的目录结构。可以看出包含很多不同的文件与文件夹,下面对目录中的文件及文件夹进行说明。

  • src:包含项目的Java源文件。
  • gen:包含了由编译器根据项目的资源自动生成的R.java文件。它会引用在项目中能找到全部资源,无需开发人员对其进行维护,全部是编译器自动完成。
  • Android 4.2.2:Android4.2.2的jar包,包含了这个Android应用程序所需要的所有类库。
  • assets:包含项目中所用到的所有原生资源。
  • bin:包含了生成过程中ADT生产的文件,它会把项目打包成一个.apk文件(Android应用的安装包)。.apk包含了Android运行所需的一切文件,包括.dex文件、清单文件、资源文件等。
  • res:该目录存放了Android项目的各种资源文件,比如,/layout/目录存放了界面布局文件,/values/目录存放了各种XML格子的资源文件,/drawable-Xxx/目录存放一些位图或者XML的资源。
  • AndroidManifest.xml:Android应用程序的清单文件。可以在其中注册Android四大组件、也可以注册应用程序所需的权限。

AndroidManifest.xml清单文件

每个Android项目所必须的,它是整个Android项目的全局描述文件。在接触一个新项目时,最先看的就是清单文件,Android清单文件AndroidManifest.xml通常可以包含如下信息:

  1. 应用程序的包名及版本号,对应了应用的唯一标识。
  2. 应用程序所包含的所有组件(四大组件),均需要在此注册。
  3. 应用支持兼容的最低SDK版本和目标SDK版本。
  4. 应用所需要的系统权限。

    Android为了安全起见,清单文件AndroidManifest.xml除了对应用的基本属性进行设置和注册Android组件之外,还需要对应用程序可能需要访问的系统权限进行显示注册。例如当前应用程序需要访问网络、需要发送短信、需要拨打电话等,这些都需要在清单文件中注册对应权限。

    对于应用权限,需要通过<user-permission…/>元素进行注册。

    例如,为当前应用注册访问网络的权限:

    <uses-permission android:name="android.permission.INTERNET"/>

    对于应用全局的权限,在<manifest…/>中注册,对于某个组件所具有的权限,需要在对应组件的元素内进行注册,如在<activity…/>中可以对当前的Activity注册对应权限。

Android系统为了系统安全性的考虑,对所有需要访问系统资源的地方都需要进行显式的权限注册,所以它也提供了大量的权限,这些权限都被以常量的形式定义在Manifest.permission类中。所有被应用程序注册的权限,在安装应用的时候,都会提示给用户知道。

下面介绍一些常用的权限:

  • ACCESS_NETWORK_STATE:允许应用程序获取网络状态信息的权限。
  • ACCESS_WIFI_STATE:允许应用程序获取Wifi网络状态信息的权限。
  • BATTERY_STATS:允许应用程序获取电池状态信息的权限。
  • BLUETOOTH:允许应用程序连接匹配蓝牙设备的权限。
  • BROADCAST_SMS:允许应用程序接收短信提醒的权限。
  • CALL_PHONE:允许应用程序拨打电话的权限。
  • CAMERA:允许应用程序使用照相机的权限。
  • CHANGE_NETWORK_STATE:允许应用程序改变网络连接状态的权限。
  • CHANGE_WIFI_STATE允许应用程序改变Wifi网络连接状态的权限。
  • DELETE_CACHE_FILES:允许应用程序删除缓存文件的权限。
  • DELETE_PACKAGES:允许应用程序卸载程序的权限。
  • FLASHLIGHT:允许应用程序访问闪光灯的权限。
  • INTERNET:允许应用程序访问网络的权限。
  • MODIFY_AUDIO_SETTINGS:允许应用程序修改全局声音设置的权限。
  • READ_CONTACTS:允许应用程序读取联系人数据的权限。
  • READ_PHONE_STATE:允许应用程序读取电话状态的权限。
  • READ_PHONE_SMS:允许应用程序读取短信的权限。
  • READ_EXTERNAL_STORAGE:允许应用程序读取外部存储器的权限。
  • REBOOT:允许应用程序重启系统的权限
  • RECORD_AUDIO:允许应用程序录音的权限。
  • SEND_SMS:允许应用程序发送短信的权限。
  • SET_ORIENTATION:允许应用程序旋转屏幕的权限。
  • SET_TIME:允许应用程序设置时间的权限。
  • SET_TIME_ZONE:允许应用程序设置时区的权限。
  • SET_WALLPAPER:允许应用程序设置桌面壁纸的权限。
  • VIBRATE:允许应用程序访问振动器的权限。
  • WRITE_EXTERNAL_STORAGE:允许应用程序向外部存储器写入内容的权限。

5 DDMS调试环境

    模拟器运行之后,就是一个独立的操作系统,我们无法捕捉到其内的状态。所以Android为我们提供了DDMS(Dalvik Debug Monitor Service)调试环境,它是一个Android的调试环境。

切换到DDMS调试环境只需要在Eclipse的右上角点击DDMS即可,或者打开Open Perspective面板选择DDMS打开。

image

进入DDMS调试环境,可以在界面上看到几个面板,简单介绍几个常用的:Devices,它显示了当前运行的模拟器的进程。如下图:

File Explorer,展示了模拟器上系统的内部文件结构,可以通过File Explorer对模拟器上的文件进行导入导出。如下图:

LogCat,一个日志输出工具,在其中可以输出Android的一些日志信息,开发人员也可以通过Log类,写入运行时消息到LogCat中。如下图:

Emulator Control,模拟器控制器,它可以对模拟器模拟一些状态进行设置。如Telephone Status可以设置模拟器的当前的状态;

Telephone Actions可以对模拟器模拟一个来电或者短信内容;

Location Controls可以在模拟器上模拟一个当前所在的位置信息

    模拟器运行之后,就是一个相对于当前运行系统的另外一个独立的系统。当前系统为了捕获到模拟器上的信息,看似是使用的DDMS,其实DDMS也是借助adb.exe这个工具,它位于Android SDK的\sdk\platform-tools目录下,该目录包含了一些开发Android应用程序需要用到的工具。adb的全称是Android Debug Bridge,翻译过来就是Android调试桥,用于实现当前系统对模拟器的桥接。

2-6 Flutter开发环境与Android开发环境设置实操(Windows)

2-6 Flutter开发环境与Android开发环境设置实操(Windows)


通常安装完AS后,sdk的目录
C:\Users\wjw\AppData\Local\Android\sdk

如果在这个目录下没有找到sdk的目录的话



Settings里面搜索sdk,找到Android SSDK



这里就是as自动下载sdk的文件夹的路径

如果这里的路径是空的话,可以点击右边的Edit 进行勾选,重新下载初始化

配置安卓环境变量

首先要设置的:ANDROID_HOME
C:\Users\wjw\AppData\Local\Android\sdk


%ANDROID_HOME%\emulator
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools

flutter是之前一斤设置过了:D:\Flutter\flutter\bin

配置完成后需要重启电脑。。。。
5分26秒
输入abp验证环境变量


flutter的命令

安装flutter插件


flutter依赖dart插件,以后安装dart插件



安装后重启as



lib/main.dart整个项目的入口文件

创建模拟器




通过这里选择模拟器

as创建flutter项目






命令窗口常见flutter项目

首先cmd命令进入对应的文件夹下。然后执行 flutter create 项目名称

如果常见遇到问题,可以通过flutter doctor 来查看当前环境是否存在问题

创建成功后,可以通过flutter run 来运行我们的项目。前提条件是有一个已经运行的按摩模拟器


另外一种方式是通过。AS这里的按钮来运行项目

彩蛋

很多教程都说安装AS必须安装java的jdk,这也是对的。但是其实AS已经继承好了jdk,不安装jdk不配置环境变量也是没有关系的









 

<转>Android研究-Android系统编译、SDK编译、ADT编译、Android开发环境建立

<转>Android研究-Android系统编译、SDK编译、ADT编译、Android开发环境建立

Android是嵌入式Linux发展的一个里程碑,近年来的嵌入式Linux应用之多,诸侯割据,也是时候有人来一统天下了,不说一统,也要给业界出个规范,出个信心,出个成功范本,Android就是嵌入式Linux的成功范例!

Android开放源码,对于研究嵌入式领域的方方面面都太有帮助了!驱动、操作系统、虚拟机、构建系统、Java语言、C/C++语言、对开源软件的整合等等,从Android中能学到太多太多!
本文从Android核心源码的下载、编译,以及ADT和SDK的编译和使用,给予详细介绍!

0. 介绍

ADT是Android针对eclipse的插件,提供了基本的工具,包括SDK的获取,配置等。所以开发Android应用ADT是必备工具!

SDK是软件开发包,各个平台都会放出SDK来供开发者使用!

Android源码中不包括kernel源码,需要另行下载编译!

SDK和ADT可直接从Android源码中编译获得!

repo是对git的封装,方便获取android源码的,源码用git维护的,所以用git获取源码也是一样的 

另:www.android.com网站上一切文档都有,网络上的文档也都是参照官方的!

 

一. 基本开发环境

Ubuntu-10.04即可,安装个本地源镜像,之后再安装软件包就速度飞快了!本文后续内容都假设系统为Ubuntu-10.04!

 

二. 安装Android编译需要的系统工具

官方参考页:http://source.android.com/source/initializing.html

(1)安装java环境

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk 
注意:ubuntu12.04下A. android需要的jdk6安装 		
B. http://www.oracle.com/technetwork/java/javase/downloads下载jdk6
C. 下载jdk-6u37-linux-x64.bin D. 放到合适的目录,如/home/rda/work/soft/,./安装到当前目录
E. 修改 ~/.bashrc增加环境变量

export JAVA_HOME=/usr/lib/jvm/java-7-sun //根据实际路径修改

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

(2)安装需要的软件包

$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline5-dev libz-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc


三. 获取源码

官方参考页:http://source.android.com/source/downloading.html

当前的Android 代码托管在两个地方:  https://github.com/android  和  https://android.googlesource.com  之前在 android.git.kernel.org 上也有托管,不过现在重定向到了  https://android.googlesource.com  好在都支持git访问。

(0)sudo apt-get install git-core curl

(1)建立repo工具目录,repo是对git源码控制工具的封装

$ mkdir ~/bin
$ PATH=~/bin:$PATH

(2)获取repo工具

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

(3)初始化repo客户端

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

 

(4)获取源码
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0

 

$ repo sync -j1

 
 
 
 

  
  
  
此时可能因为连接过多,有错误发生,不过没关系,改用repo sync试试先.不行的话,用下边的方法再试试.

(4.0)如遇到错误:DownloadError: android.googlesource.com: <urlopen error [Errno 110] Connection timed out>

说明是服务器拒绝过多链接,可以申请下授权,比较简 单:

参考网址:http://blog.csdn.net/thl789/article/details/7524232

1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;

2. 点击网页上的“允许访问”,得到类似:

  1. machine android.googlesource.com login git-<userName>.gmail.com password <password>  
  2. machine android-review.googlesource.com login git-<userName>.gmail.com password <password>  

的 信 息。

3. 把上面那段信息(<userName>和<password>用自己得到的真实信息)追加到~/.netrc文件结尾;

4. 下载地址的URI更改为https://android.googlesource.com/a/platform /manifest(中间加上了“/a”)即可。

重复(3)步骤,用

repo init -u https://android.googlesource.com/a/platform/manifest -b android-4.0.1_r1
后,再repo sync即可.

四. 编译Android系统

1. 编译整个系统

官方参考链接:http://source.android.com/source/building.html

启动ccache会加速编译,不过也会产生问题,建议先不使用!

(1)启用环境

$ source build/envsetup.sh

(2)配置目标

$ lunch full-eng

(3)编译源码

$ make -j4

编译成功后,就可以运行模拟器看效果了,命令如下:

export ANDROID_PRODUCT_OUT=$PWD/out/target/product/generic

export ANDROID_SWT=$PWD/out/host/linux-x86/framework

export PATH=$PATH:$PWD/out/host/linux-x86/bin

emulator 即可看到效果了!

2. 编译SDK

(1)启用环境

$ source build/envsetup.sh

(2)配置目标

$ lunch sdk-eng

(3)编译源码

$ make sdk -j4

(4)编译结果在out/host/linux-x86/sdk目录就是sdk目录,此目录可备份下,以便后用

3. 编译ADT

export ECLIPSE_HOME=<XXXXXX> eclipse的根目录

sdk/eclipse/scripts/build_server.sh ./adt/

上边传说中的脚本可用来编译ADT,可我一直没成功!此处会依赖于后边的Eclipse,可在安装了Eclipse后再编译!

编译前,注意备份SDK.

4. 编译内核

官方参考链接:http://source.android.com/source/building-kernels.html

参考上面链即可,比较简单!


五.建立Eclipse上的Android开发环境

官方参考链接:http://developer.android.com/sdk/installing.html

(1)获取Eclipse

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-rcp-indigo-SR2-linux-gtk.tar.gz&url=http://download.actuatechina.com/eclipse/technology/epp/downloads/release/indigo/SR2/eclipse-rcp-indigo-SR2-linux-gtk.tar.gz&mirror_id=385

解压即可,直接能用了!建议下载rcp版本的!

(2)获取ADT

前边如果自己编译出来了,则按照道理说是不用再下载或者在线安装的,这里说下下载方法!

http://dl.google.com/android/ADT-18.0.0.zip 这个是目前最新的,下载即可

(3)安装ADT

Eclipse的Help里有个Install New Software,选择Achive,选择ADT-18.0.0.zip即可安装完成.

(4)安装SDK

SDK前边已经编译出来了,目录大约为out/host/linux-x86/sdk/,配置ADT的SDK目录即可,其他不用配置!

(5)创建一个AVD

AVD是虚拟设备,创建即可!

 

至此,本文把大概的Android的系统编译,SDK安装,开发环境等介绍了一下!

 

本文完!

Android Jetpack架构开发组件化应用实战,ndk开发教程

Android Jetpack架构开发组件化应用实战,ndk开发教程

}

}

}

return insets;

}

复制代码

直接break了。所以我们也需要自定义一个view来重写dispatchApplyWindowInsets方法。具体也会在后续文章中进行讲解。

下面就简单介绍下各个Tab的技术要点。

首页

首页主要分为顶部Banner和底部的文章列表。列表使用Paging加载。 并且封装了AbsListFragment和AbsListviewmodel来快速搭建列表页面。 AbsListFragment主要是封装了页面布局相关的元素。 AbsListviewmodel主要是封装了paging的一些常用配置等信息。 通过上述两个封装我们在开发列表页面的时候只需要关系DataSource和adapter即可。

项目

项目Tab主要使用的是TabLayout和ViewPager2来配合实现联动。同样的ViewPager2的页面也是直接继承了AbsListFragment 来实现列表页面。

导航

导航页面主要分为顶部的搜索和底部的分类。点击搜索后打开新的页面。通过fragment来承载热门搜索和搜索返回结果。 底部的分类主要是通过RecyclerView+ViewPager2来实现的。通过设置ViewPager2的orientation为ORIENTATION_VERTICAL来实现列表滑动。

体系

通过自定义FlowLayout来实现Tag标签管理。并进一步封装TagFlowLayout并对外提供TagAdapter来加载数据。

所有的下拉刷新换个下拉加载都是通过SmartRefreshLayout来实现的。通过阅读Paging源码我们了解到当请求数据返回空数据的时候,那么Paging就 不会继续帮我们来做分页加载了,默认会认为数据已经加载结束了。这个逻辑在实际开发中是有些问题的。所以就需要我们来返回空数据的时候手动来加载 分页逻辑。这里是通过自定义DataSource来完成。其实Paging框架只提供了加载数据的方式,在增加或者删除的逻辑目前都是不不支持的。这些都可以通过自定义 DataSource来完成。具体也会在后续文章中进行讲解。

网络请求


主要还是通过Retrofit+协程来完成。整个应用的数据流向架构为:

目前还未加缓存功能,后续会通过room来实现缓存功能。

组件通信


《960全网最全Android开发笔记》

《379页Android开发面试宝典》

《507页Android开发相关源码解析》

7DDRby-1643943280908)]

《507页Android开发相关源码解析》

[外链图片转存中…(img-82J1I6tA-1643943280909)]

因为文件太多,全部展示会影响篇幅,暂时就先列举这些部分截图,大家可以**点击这里**自行领取。

我们今天的关于从事Android开发这么多年了,你知道初、中,ndk开发环境android ndk开发的分享已经告一段落,感谢您的关注,如果您想了解更多关于01_Android应用开发环境_03_开发环境搭建及简单Android程序、2-6 Flutter开发环境与Android开发环境设置实操(Windows)、<转>Android研究-Android系统编译、SDK编译、ADT编译、Android开发环境建立、Android Jetpack架构开发组件化应用实战,ndk开发教程的相关信息,请在本站查询。

本文标签: