android架构

全面认识Android OS

↘锁芯ラ 提交于 2020-01-10 14:01:01
全面认识Android OS 在Android刚起步的那几年(2011年前及左右),我们同时下注了Android、Intel联合几个厂商搞的Meego、还有基于Linux的嵌入式OS。那时,中移动的OMS也很火,甚至OMS搞出了一个叫播思的公司。播思里边有非常多的人才,其中很多人来自中国手机界的黄埔军校——摩托罗拉。从这个角度看,Android OS在早期也是看不准,没人觉得它一定会成。 Android最终还是成功了,我个人感觉这个不全是技术的因素,但有几个关键因素还是和技术有关: 使用Java作为开发语言绝对是很关键的因素之一——毕竟,迎合开发者非常重要。Java终归是比C++/C要简单,容易上手。 另外,Android底层是Linux,这一块就把绝大部分做外设的厂商吸引过来了。它们本来就为Linux开发驱动或者相关模块,迁移到Android没太大工作量。 最后,还有关键的芯片厂商——高通的支持。如果当时只有Intel一家做芯片的话,Meego保不齐还能多蹦跶几年。 以前CSDN《程序员》杂志里经常有一位作者的投稿,我看他的个人介绍就很有意思,说是要为Linux摇旗呐喊。所以,Android之所以成功,就在于太多人为它摇旗呐喊了。搞软硬件开发的,搞培训的…真是人心齐泰山移呀! Android彻底占据市场之后,基于H5的OS又来了一波小高潮。2013

Android 开发:由模块化到组件化

非 Y 不嫁゛ 提交于 2020-01-08 19:28:15
在Android SDK一文中,我们谈到模块化和组件化,现在我们来聊聊组件化开发背后的哪些事.最早是在广告SDK中应用组件化,但是同样适用于普通应用开发 以下高能,请做好心理准备,看不懂请发私信来交流.本文不推荐新手阅读,如果你刚接触Android开发不久,请立刻放弃阅读本文. 百牛信息技术bainiu.ltd整理发布于博客园 模块化和组件化 模块化 组件化不是个新概念,其在各行各业都一直备受重视.至于组件化什么时候在软件工程领域提出已经无从考究了,不过呢可以确认的是组件化最早应用于服务端开发,后来在该思想的指导下,前端开发和移动端开发也产生各自的开发方式. 在了解组件化之前,先来回顾下模块化的定义 Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. 简单来说,模块化就是将一个程序按照其功能做拆分,分成相互独立的模块

Android Camera 资料收集与总结

痞子三分冷 提交于 2020-01-07 13:11:41
首先需要了解android目前的新架构,这样才能把camera的架构对应到新的android架构上面。 《重走Android路 之 Android系统架构图以及开发工具了解》 https://blog.csdn.net/u012400885/article/details/80586697 从 apk 中的camera api 2 使用流程开始,了解app层是怎么使用frameworks提供的api来操作摄像头 Android Camera api2 demo: https://github.com/android/camera-samples 要了解,提供相机服务的两个大佬: CameraService 和 CameraProvider 是如何启动、注册的: 《[Android O] Camera 服务启动流程简析》 https://blog.csdn.net/qq_16775897/article/details/81240600 了解Camera在HAL层的演进和作用: Android Camera从Camera HAL1到Camera HAL3的过渡(已更新到Android6.0 HAL3.3) https://blog.csdn.net/gzzaigcnforever/article/details/48974523 Android Camera2+HAL3架构

送个学习Android的技巧给你,2020不惧寒冬继续前行!

与世无争的帅哥 提交于 2020-01-07 04:14:11
Android 还可以走多久? 最近,有人问我这么一个问题: 「萧哥,我做 Android 开发两年多时间了,但是最近总是很焦虑,看着人工智能越来越火,很担心 Android 要不行了,想问下,我现在要转行么?Android 还可以走多久?」 这个问题我觉得还蛮有代表性的,今天就姑且给大家谈谈这个话题。 毫无疑问,人工智能是下个十年要进入的时代,而且现在已经有蓄势待发的意思,但是人工智能跟 Android 开发完全不冲突,人工智能它是一门技术与科学,它可以应用于各行各业,方方面面,同样,它也可以应用于手机端,这两年也有不少手机厂商推出了 AI 芯片,以后人工智能在手机上的应用会有很大潜力。 那有人可能会担心, 未来 Android 会不会如当初的塞班一样很快就被取代呢? 这个担心是多余的,正是由于有了诺基亚的前车之鉴,现在各大互联网公司危机意识都很强,想再出现一例诺基亚这样的事情是很难了,再说了,Android 和 iPhone 的背后要知道那可是 Google 和 Apple 啊,这两家富可敌国的科技公司,想要被颠覆那基本就是做梦,现在想要出现第三个操作系统那得经过 Google 和 Apple 的允许才行,所以,未来五到十年,甚至更长,手机将永远会是 Android 和 iPhone 的天下,而随着科技的发展,未来取代手机的绝对不是另外一种手机,而可能会是新的载体,如眼镜

送个学习Android的技巧给你,2020不惧寒冬继续前行!

百般思念 提交于 2020-01-07 04:12:36
Android 还可以走多久? 最近,有人问我这么一个问题: 「萧哥,我做 Android 开发两年多时间了,但是最近总是很焦虑,看着人工智能越来越火,很担心 Android 要不行了,想问下,我现在要转行么?Android 还可以走多久?」 这个问题我觉得还蛮有代表性的,今天就姑且给大家谈谈这个话题。 毫无疑问,人工智能是下个十年要进入的时代,而且现在已经有蓄势待发的意思,但是人工智能跟 Android 开发完全不冲突,人工智能它是一门技术与科学,它可以应用于各行各业,方方面面,同样,它也可以应用于手机端,这两年也有不少手机厂商推出了 AI 芯片,以后人工智能在手机上的应用会有很大潜力。 那有人可能会担心, 未来 Android 会不会如当初的塞班一样很快就被取代呢? 这个担心是多余的,正是由于有了诺基亚的前车之鉴,现在各大互联网公司危机意识都很强,想再出现一例诺基亚这样的事情是很难了,再说了,Android 和 iPhone 的背后要知道那可是 Google 和 Apple 啊,这两家富可敌国的科技公司,想要被颠覆那基本就是做梦,现在想要出现第三个操作系统那得经过 Google 和 Apple 的允许才行,所以,未来五到十年,甚至更长,手机将永远会是 Android 和 iPhone 的天下,而随着科技的发展,未来取代手机的绝对不是另外一种手机,而可能会是新的载体,如眼镜

Android集成Flutter

时间秒杀一切 提交于 2020-01-03 15:14:20
在Flutter发布了1.12版本之后 , 在原生程序中集成flutter的方式也有了改变 , 于是重新走一遍流程. 本次操作基于以下版本: Flutter 1.12.13+hotfix.5 • channel stable Android Studio 3.5.2 Android集成Flutter的意义 有时一次全部在Flutter中重写整个应用程序是不切实际的。在这种情况下,Flutter可以作为库或模块集成到现有的应用程序中。然后可以将该模块导入到Android或iOS(当前受支持的平台)应用中,以在Flutter中呈现应用UI的一部分。或者仅运行共享的Dart逻辑。 通过Android Studio来集成Flutter 创建一个原生Android应用 当然如果你已经有现成的App准备嵌入Flutter,也可以使用, 但我还是建议再创建一个应用来走一遍流程, 我这里直接新建了一个文件夹 , 在该文件夹内新建了一个Android应用. 目录为: FlutterBoostDemo \ AndroidBoost 限制支持的架构 Flutter当前仅支持为armeabi-v7a和arm64-v8a AOT编译的库。 使用abiFilters Android Gradle插件API来限制APK中支持的架构。 这样做可以避免丢失libflutter.so运行时崩溃,例如

AndroidManifest.xml

戏子无情 提交于 2020-01-01 02:48:12
AndroidManifest.xml配置文件的根元素,必须包含一个元素且指定xlmns:android和package属性 xlmns:android指定了Android的命名空间 package是标准的包名,为了避免命名空间的冲突,一般会以应用的域名来作为包名 android:versionCode:是给设备程序识别版本用的,必须是一个整数值,代表App更新过多少次 android:versionName则是给用户查看版本用的,需要具备一定的可读性比如“1.0” android:installLocation是安装参数,instllLocation有三个值可以选择: internalOnly(必须安装到内部才能运行), auto(系统将会根据存储空间自己去适应), perferExternal(系统会优先考虑将APK安装到SD卡上。当然最终用户可以选择为内部ROM,若SD存储已满,也会安装到内部存储上)。 注:需要进行后台类监控的APP最好安装在内部,而一些较大的游戏APP最好安装在SD上 为了保证Android应用的安全性,应用框架指定了比较严格的权限系统,一个应用必须声明了正确的权限才可以使用相应的功能 android:icon这个是整个APP的图标,图片一般放在drawable文件夹下 android:allowbackup是否将程序加入到系统的备份和恢复架构中

Android 架构组件之 Paging

非 Y 不嫁゛ 提交于 2019-12-31 23:16:23
文章目录 1. 为什么要使用 Paging Library? 2. 分析 Paging 的组成及原理 2.1 PagedList 2.2 数据源 DataSource 2.3 总结一下不同的数据源,如何创建 DataSource 2.4 PagedListAdapter 3. 通过一个简单的案例,介绍如何使用 Paging Library 4. 最后对 Paging Library 进行简单的总结 参考链接 Paging Library 是 Google 提出的分页加载库,本文将从以下几个方面对 Paging 进行介绍: 为什么要使用 Paging Library? 分析 Paging 的组成及原理 通过一个简单的案例,介绍如何使用 Paging Library 最后对 Paging Library 进行简单的总结 1. 为什么要使用 Paging Library? 我们经常需要处理大量数据,但大多数情况下,只需要加载和显示其中的一小部分。如果去请求用户不需要的数据,势必会浪费用户设备的电量和带宽。如果数据比较多情况下,消耗用户的流量也会比较多。 Paging Library 是 Google 提出的分页加载库,它可以妥善的逐步加载数据, 解决上面提到的痛点。此外: Paging Library 可以与 RecyclerView 无缝结合; Paging Library

Android开发之旅:android架构

痞子三分冷 提交于 2019-12-31 19:07:53
引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪 些文件夹和文件及相应的作用。本篇将站在顶级的高度——架构,来看android。我开篇就说了,这个系列适合0基础的人且我也是从0开始按照这个步骤来 学的,谈架构是不是有点螳臂挡车,自不量力呢?我觉得其实不然,如果一开始就对整个android的架构了然于胸,就不会误入歧途,能够很好地把握全局。 本文的主题如下: 1、架构图直观 2、架构详解 2.1、Linux Kernel 2.1、Android Runtime 2.3、Libraries 2.4、Application Framework 2.5、Applications 3、总结 1、架构图直观 下面这张图展示了Android系统的主要组成部分: 图1、Android系统架构(来源于:android sdk) 可以很明显看出,Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分将详细介绍这5个部分。

Android开发之旅:android架构

心不动则不痛 提交于 2019-12-31 19:07:36
通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪 些文件夹和文件及相应的作用。本篇将站在顶级的高度——架构,来看android。我开篇就说了,这个系列适合0基础的人且我也是从0开始按照这个步骤来 学的,谈架构是不是有点螳臂挡车,自不量力呢?我觉得其实不然,如果一开始就对整个android的架构了然于胸,就不会误入歧途,能够很好地把握全局。 本文的主题如下: 1、架构图直观 2、架构详解 2.1、Linux Kernel 2.1、Android Runtime 2.3、Libraries 2.4、Application Framework 2.5、Applications 3、总结 1、架构图直观 下面这张图展示了Android系统的主要组成部分: 图1、Android系统架构(来源于:android sdk) 可以很明显看出,Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分将详细介绍这5个部分。 2