android框架

flutter资料

老子叫甜甜 提交于 2019-11-27 20:38:11
Flutter社区和资源传送门 新: 慕课网《Flutter入门与案例实战》 | 中文网《Flutter实战》电子书 字体图标生成 http://fluttericon.com/ Flutter中文网 https://flutterchina.club Flutter官网 https://flutter.io Flutter中文开发者论坛 http://flutter-dev.cn/ Flutter|Dart语言中文社区 http://www.cndartlang.com/flutter Dart开源包 https://pub.dartlang.org/packages Dart SDK文档 https://api.dartlang.org/stable/1.24.3/index.html 学习资料 https://marcinszalek.pl/ Flutter布局控件 https://juejin.im/post/5bab35ff5188255c3272c228 Flutter开发者 http://flutter.link/ Flutter开源APP https://itsallwidgets.com/ 深入理解(Flutter Platform Channel ) https://www.jianshu.com/p/39575a90e820 简书 - 闲鱼技术 https:/

flutter兼论

こ雲淡風輕ζ 提交于 2019-11-27 20:32:24
Flutter是Google开发的一套全新的跨平台、开源UI框架,支持iOS、Android系统开发,并且是未来新操作系统Fuchsia的默认开发套件。自从2017年5月发布 第一个版本 以来,目前Flutter已经发布了近60个版本,并且在2018年5月发布了第一个 “Ready for Production Apps” 的Beta 3版本,6月20日发布了第一个 “Release Preview” 版本。 初识Flutter Flutter的目标是使同一套代码同时运行在Android和iOS系统上,并且拥有媲美原生应用的性能,Flutter甚至提供了两套控件来适配Android和iOS(滚动效果、字体和控件图标等等),为了让App在细节处看起来更像原生应用。 在Flutter诞生之前,已经有许多跨平台UI框架的方案,比如基于WebView的Cordova、AppCan等,还有使用HTML+JavaScript渲染成原生控件的React Native、Weex等。 基于WebView的框架优点很明显,它们几乎可以完全继承现代Web开发的所有成果(丰富得多的控件库、满足各种需求的页面框架、完全的动态化、自动化测试工具等等),当然也包括Web开发人员,不需要太多的学习和迁移成本就可以开发一个App。同时WebView框架也有一个致命(在对体验&性能有较高要求的情况下)的缺点

Android整体印象

*爱你&永不变心* 提交于 2019-11-27 19:14:33
很多人觉得Google能做出Android本身就是一个很了不起的工作过程,真的是这样吗?正好在Android上花过半年时间业余研究,从上到下还算是比较熟了,就说说我的印象吧: 1. 内核 以开发用机G1和Sapphire做例子,内核部分Qualcomm的那部分初始工作最重要(但也称不上大项目),Google的几个mechanism实际上工作量很轻、和类似目的的成熟组件比实际上都是超级简化版,设计的也有不少有欠考虑的地方。 lower memory killer多么简陋就不说了,另一个差劲的设计就是缺乏管理的WakeLock【1】,遍布若干层的这玩意加上我个人最恨的那些没事醒着等待中断的内核代码,无论哪个地方一个小bug,就可能让你的手机待机超不过仨小时。【2】 不是说不能往内核里加东西,也不是说一出手就必须惊天动地,关键是不能一拍脑门子想出个方案就上。Android对于内核的改动,很多类似地方的设计都缺乏整体思路,与其说是一组设计,不如干脆说是一堆hack来的确切;所幸Google在这这里干的活不多。 2. 中间层 能把这么多不同的开源项目粘一起确实是个费心的工作;不过说到具体的活儿,基本上就是因为license和手机环境的设置,照着别人代码抄一遍,掏空一些逻辑,换上一些逻辑。这一块主要是麻烦事儿很多:从总体上来看,这些麻烦还是被Google较好地控制住了的。

Android常用库源码解析

那年仲夏 提交于 2019-11-27 15:49:59
图片加载框架比较 共同优点 都对多级缓存、线程池、缓存算法做了处理 自适应程度高,根据系统性能初始化缓存配置、系统信息变更后动态调整策略。比如根据 CPU 核数确定最大并发数,根据可用内存确定内存缓存大小,网络状态变化时调整最大并发数等。 支持多种数据源支持多种数据源,网络、本地、资源、Assets 等 不同点 Picasso所能实现的功能,Glide都能做,无非是所需的设置不同。但是Picasso体积比起Glide小太多。 Glide 不仅是一个图片缓存,它支持 Gif、WebP、缩略图。Glide 支持加载 Gif 动态图,而 Picasso 不支持该特性 Fresco在5.0以下的内存优化非常好,代价就是体积也非常的大,按体积算Fresco>Glide>Picasso UIL可以算是老牌最火的图片加载库了,该作者在项目中说明已经停止了对该项目的维护。这就意味着以后任何的 bug 都不会修复,任何的新特性都不会再继续开发,所以毫无疑问 UIL 不推荐在项目中使用了。 图片框架的缓存 MemorycCache图片内存缓存。默认使用了 LRU 算法。 DiskCache图片磁盘缓存,默认使用LruDiskCache算法,在缓存满时删除最近最少使用的图片 glide源码 一般看源码先看他的使用方法,通过使用的方法看对应的代码。 Glide.with(MainActivity.this

深入解读Linux与Android的相互关系& Android消息处理系统的原理

 ̄綄美尐妖づ 提交于 2019-11-27 15:33:53
深入解读Linux与Android的相互关系 大家都知道Android是基于Linux内核的 操作系统 ,也曾经和Linux基金会因为内核问题产生过分歧,本文将开始对Android的内核进行剖析,主要介绍Android和Linux之间的关系,后续还会讲到Android系统在Linux系统之上扩展的部分功能和驱动,希望大家能够持续关注IT168技术频道。 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序。下面我们就来分析一下它们之间究竟有什么关系? 一、 Android为什么会选择Linux 成熟的 操作系统 有很多,但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如: 1、强大的 内存 管理和进程管理方案 2、基于权限的安全模式 3、支持共享库 4、经过认证的驱动模型 5、Linux本身就是开源项目 更多关于上述特性的信息可以参考Linux 2.6版内核的官方文档,这便于我们在后面的学习中更好地理解Android所特有的功能特性。接下来分析Android与Linux的关系。 二、Android不是Linux 看到这个标题大家可能会有些迷惑,前面不是一直说Android是基于Linux内核的吗,怎么现在又不是Linux了?迷惑也是正常的

Android 面试知识集1

会有一股神秘感。 提交于 2019-11-27 13:53:13
  今晚在复习Android基础的时候,找到了一些很有价值的基础知识,分享给给位Android的开发者。这些是基础知识,同时也可以当做面试准备。面试题其实是很好的基础知识学习,有空会好好整理相关基础知识。 1.Activity的生命周期 方法 描述 可被杀死 下一个 onCreate() 在activity第一次被创建的时候调用。这里是你做所有初始化设置的地方──创建视图、设置布局、绑定数据至列表等。如果曾经有状态记录(参阅后述 Saving Activity State 。),则调用此方法时会传入一个包含着此activity以前状态的包对象做为参数。 总继之以onStart()。 否 onStart() onRestart() 在activity停止后onStop(),在再次启动之前被调用。 总继之以onStart()。 否 onStart() onStart() 当activity正要变得为用户所见时被调用。 当activity转向前台时继以onResume(),在activity变为隐藏时继以onStop()。 否 onResume() or onStop() onResume() 在activity开始与用户进行交互之前被调用。此时activity位于堆栈顶部,并接受用户输入。 继之以onPause()。 否 onPause() onPause()

Xamarin工程中调用Android AAR

若如初见. 提交于 2019-11-27 13:52:21
最近想尝试下用Xamarin来写Android app,通过调用 Android Barcode SDK (AAR文件)创建一个简单的条形码读取工具。 绑定Android AAR文件 基本步骤 参考 Binding an AAR ,基本步骤如下: 创建一个Java Bindings Library工程。 添加Android AAR文件。 设置正确的Build Action。 选择目标框架。 编译工程。 DynamsoftBarcodeReader.aar转换成DBRAndroid.dll 运行 Visual Studio 2015 ,创建工程 Bindings Library (Android) . 下载 SDK package for Android 。把 DynamsoftBarcodeReader.aar 拖入工程中。Build Action设置成 LibraryProjectZip: 编译工程可以生成 DBRAndroid\bin\Debug\DBRAndroid.dll 。 创建简单的Android Barcode Reader 新建一个Android工程,把刚才生成的DBRAndroid.dll添加到Reference中: 双击DBRAndroid可以看到具体的类,成员以及方法: 我这里比较偷懒,只是为了测试接口,所以就放了一张QR的图到drawable中。 如何用C

React Native For Android 架构初探

喜你入骨 提交于 2019-11-27 11:51:03
版权声明:本文由王少鸣原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/171 来源:腾云阁 https://www.qcloud.com/community Facebook 在2015.9.15发布了 React Native for Android,把JavaScript 开发技术扩展到了Android平台。React Native 让开发者使用 JavaScript 和 React 编写应用,利用相同的核心代码就可以创建 基于Web,iOS 和 Android 平台的原生应用。本文将浅析Android React的架构及相关基础知识。 环境搭建及调试相关知识参考 官网文档 即可,本文不再赘述。 一.React架构分析 1.层次架构: Java层:java层为逻辑入口,启动C++层的javascript解析器,执行js通过c++传递来的渲染指令,从而构建NativeUI等。java层依赖于众多优秀开源库,在图片处理使用的是Fresco,网络通信使用的是okhttp,当然还有众多工具类,如Json解析工具jackson,Animation知名开源库NineOldAndroids,小而全的底层工具类bolts等,在java层均封装为Module。java层核心jar包是react-native.jar

Android源代码结构分析

蓝咒 提交于 2019-11-27 08:31:07
Google提供的Android包含了:Android源代码,工具链,基础C库,仿真环境,开发环境等,完整的一套。 第一级别的目录和文件如下所示: [cpp] view plain copy ---------------- ├── Makefile 全局的Makefile ├── build 系统编译规则和配置所需要的脚本和工具 ---------------- ├── prebuilt 各种平台编译工具链 ├── bionic 基础C库源代码 ---------------- ├── frameworks * Android应用程序的核心框架层(java及C++语言) ├── system * 底层文件系统/库/应用及组件(C语言) ├── dalvik JAVA虚拟机 ├── external android使用的一些额外开源库 ├── libcore 与媒体播放框架代码相关 ---------------- ├── packages 各种应用程序实例 ├── development 程序开发所需要的实例/模板/工具 ---------------- ├── ndk ├── sdk ├── cts Android CTS兼容性规范测试用例 ---------------- ├── vendor * 厂商定制代码 ├── device * 厂商定制代码 ├── hardware

Apple IOS、Android、WebOS系统体系架构对比

时光毁灭记忆、已成空白 提交于 2019-11-27 07:45:16
2月10日,HP发布了WebOS3.0,虽然有些生不逢时,但即使面对不成熟的Windows phone7,尚待字闺中的meego, 移动设备操作系统中Apple IOS、Android、WebOS三足鼎立的局面已然初成,。竞争的大幕拉开,未来移动设备操作系统江湖谁主沉浮? 这里从系统架构角度进行对比分析。 以上3大移动设备操作系统都采用unix或linux内核,有着共同的基因,它们的内核都是精简版的UNIX(MacOS X)或linux。在具体的实现上,如界面管理框架、应用程序运行模式,有很大的不同: 1、WebOS WebOS采用的是Mojo框架,Mojo是一个JavaScript框架,应用以HTML、CSS和JavaScript编写,mojo应用运行时,需要UI System Manager解析HTML、CSS、JavaScript代码,运行效率不会太高。当然Mojo框架的最大好处是采用通用Web应用开发技术,应用开发难度低、速度快、效率高。应该说,WebOS的应用框架是相当先进的,但以增加复杂性,降低效率为代价。 Web OS体系架构 Mojo应用的生命周期 2、Apple IOS IOS是Apple长期积累的结果,系统核心、基础服务和应用框架都采用C/C++或object-C开发,而应用采用Cocoa Touch框架,以object- C开发