android框架

GitHub标星4.6K+!手写一款基于MVVM模式开发框架,完美实现事件与数据源绑定!

删除回忆录丶 提交于 2020-04-08 14:03:26
前言 目前,Android流行的MVC、MVP模式的开发框架很多,然而一款基于MVVM模式开发框架却很少。MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架为基础,整合Okhttp+RxJava+Retrofit+Glide等流行模块,加上各种原生控件自定义的BindingAdapter,让事件与数据源完美绑定的一款容易上瘾的实用性MVVM快速开发框架。从此告别findViewById(),告别setText(),告别setOnClickListener()... 框架流程 框架特点 快速开发 只需要写项目的业务逻辑,不用再去关心网络请求、权限申请、View的生命周期等问题,撸起袖子就是干。 维护方便 MVVM开发模式,低耦合,逻辑分明。Model层负责将请求的数据交给ViewModel;ViewModel层负责将请求到的数据做业务逻辑处理,最后交给View层去展示,与View一一对应;View层只负责界面绘制刷新,不处理业务逻辑,非常适合分配独立模块开发。 流行框架 retrofit + okhttp + rxJava 负责网络请求; gson 负责解析json数据; glide 负责加载图片; rxlifecycle 负责管理view的生命周期;与网络请求共存亡; rxbinding 结合databinding扩展UI事件;

Binder进程间通信系统第五篇-----Binder进程间通信实例

☆樱花仙子☆ 提交于 2020-04-08 09:21:17
注意1 class IFregService: public IInterface 服务接口是为 class BnFregService: public BnInterface 服务的,如下声明和定义的服务接口,是为FregService服务提供的接口,这是Binder进程间通信的基本要求,Binder进程间通信机制要求提供服务的一方必须提供一个跨进程访问能力的服务接口,以便使用服务的一方可以通过该接口来访问服务。接口名就是 descriptor : " hr.ma.IFregService " 。客户进程可以在 service manager中通过该 名称 获取服务的接口,然后访问服务。 DECLARE_META_INTERFACE(FregService); /* * 0. 使用宏 IMPLEMENT_META_INTERFACE 来实现IFregService类的元接口 * 1. 将 IFregService类的静态成员变量 descriptor 设置为 " hr.ma.IFregService " * 2. 实现了 IFregService类的构造函数和析构函数,是空函数 * 3. 实现了成员函数 getInterfaceDescriptor() ,用来获取一个IFregService类的描述符,即 descriptor * 4. 实现了 asInterface()

Android 开发技术周报 Issue#274

青春壹個敷衍的年華 提交于 2020-04-06 11:39:01
新闻/News Play Store搜索结果中现显示APP评分、容量和下载量信息 谷歌发布安卓GPU工具:优化手机GPU性能 可OTA更新驱动 Android-x86 9.0-r2 稳定版发布 在PC上运行 Android 教程 抖音包大小优化-资源优化 两步使用 LiveData 替换 Observable Field Android模拟器检测体系梳理 开源库/Librarys LoadingImagesAnimation Android loading animation with images changing simiasque A developer tool to hide Android status bar under an overlay mask CustomBottomSheetBehavior Custom BottomSheetBehavior for Android that mimic Google Maps behavior CornerSheet Behavior to make a view expands from corner StarrySky 🔥A Powerful and Streamline MusicLibrary(一个丰富的音乐播放封装库,支持多种音频格式,完美解决你的问题。) CrashReporter

Andriod学习 第十二周

 ̄綄美尐妖づ 提交于 2020-04-05 20:53:45
一、Service 首先我们来了解一下线程的相关概念: 线程 1 相关概念 程序:为了完成特定任务,用某种语言编写的一组指令集合(一组静态代码) 进程:运行中的程序,系统调度与资源分配的一个独立单位,操作系统会 为每个进程分配一段内存空间。程序的依次动态执行,经历代码的加载,执行, 执行完毕的完整过程。 线程:比进程更小的执行单元,每个进程可能有多条线程,线程需要放在一个 进程中才能执行,线程由程序负责管理,而进程则由系统进行调度。 多线程的理解:并行执行多个条指令,将CPU时间片按照调度算法分配给各个 线程,实际上是分时执行的,只是这个切换的时间很短,用户感觉到"同时"而已。 2 线程的生命周期 3 创建线程的三种方式 继承Thread类 实现Runnable接口 实现Callable接口 如果使用的是2创建的线程的话,可以直接这样启动: new Thread(myThread).start(); 当更多的时候我们喜欢使用匿名类,即下面这种写法: new Thread(new Runnable(){ public void run(); }).start(); Service与Thread 两者并没有太大的关系,但容易混淆。 Thread是线程,程序执行的最小单元,分配CPU的基本单位, 而Service则是Android提供一个允许长时间留驻后台的一个组件,最常见的

开源 Android 游戏引擎

两盒软妹~` 提交于 2020-04-04 17:02:23
转载自cpeng,特别声明! 初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因为我们处于这个狭小的天地间,与外界接触不够,所以对它们的存在茫然不知罢了。 下面我就罗列出八款常见的Android游戏引擎,以供有需要者参考(收费,下载量过小,不公布源码,以及鄙人不知道(-_-)的引擎不在此列)。 1、Angle Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程。 最低运行环境要求不详。 项目地址: http://code.google.com/p/angle/ 2、Rokon rokon是一款Android 2D游戏引擎,基于OpenGL

Android 3D引擎推荐

吃可爱长大的小学妹 提交于 2020-04-04 17:01:11
============问题描述============ 最近接到一个项目需要使用3D引擎,请教下Android平台下哪个3D游戏引擎比较好啊,最好是开源的,资料比较多的。 ============解决方案1============ 很 多初学Android游戏开发 href="http://edu.gamfe.com/gamedev.html">游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发 href="http://edu.gamfe.com/gamedev.html">游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因 为我们处于这个狭小的天地间,与外界接触不够,所以对它们的存在茫然不知罢了。 下面我就罗列出八款常见的Android游戏引擎,以供有需要者参考(收费,下载量过小,不公布源码,以及鄙人不知道(-_-)的引擎不在此列)。 1、Angle

Android 3D引擎推荐

有些话、适合烂在心里 提交于 2020-04-04 16:59:26
============问题描述============ 最近接到一个项目需要使用3D引擎,请教下Android平台下哪个3D游戏引擎比较好啊,最好是开源的,资料比较多的。 ============解决方案1============ 很 多初学Android游戏开发 href="http://edu.gamfe.com/gamedev.html">游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发 href="http://edu.gamfe.com/gamedev.html">游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因 为我们处于这个狭小的天地间,与外界接触不够,所以对它们的存在茫然不知罢了。 下面我就罗列出八款常见的Android游戏引擎,以供有需要者参考(收费,下载量过小,不公布源码,以及鄙人不知道(-_-)的引擎不在此列)。 1、Angle

2018 技术文章合集,200+ 篇

我的梦境 提交于 2020-04-04 00:26:19
2017 文章合集 2017 年度文章分类整理 下面是 2018 年公众号所发表的文章分类整理 面经 一年经验 Android 面试记录 记自己 2018 年三月份的面试经历 怎样在 Android 面试中聊聊多线程 2018 Android ;面试心得,已拿到 offer 从技术面试官的角度谈谈简历和面试那些事儿 Android开发面试经—常见面试官提问Android题 蚂蚁金服面试经历-临场发挥 OPPO Android 开发技术面总结 项目、开源库 碎阅:一款基于 douban 及 ONE API 开发的资讯类 App Android 权限-HaloPermission 详细介绍 年中 Android 开源库推荐 Android断点续传下载器JarvisDownloader 行×××路:打造一个灵活易用的Banner组件 Android开发之漫漫长途XVI——ListView与RecyclerView项目实战 Android人脸识别app——基于Face++,MVP+Retofit+RxJava+Dagger高度解耦 首个hybird商业项目踩坑总结 功能 Demo 实现城市列表的排序及模糊查询 基于 zxing 的二维码扫描 [Android进阶]OFO首页实现小窥 Android 自己开发的消息事件小项目DBus 教你用Java来玩答题(百万英雄/冲刺大会等) "巧

android面试题整理

半世苍凉 提交于 2020-04-03 04:31:41
以下是整理的一些android面试题,希望对大家有用。 1. 什么是Activity? 四大组件之一,一般的,一个用户交互界面对应一个activity, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件. 我开发常用的的有ListActivity , PreferenceActivity 等…如果界面有共同的特点或者功能的时候,还会自己定义一个BaseActivity. 2. 请描述一下Activity生命周期。 生命周期描述的是一个类 从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法.. 在这个过程中 会针对不同的生命阶段会调用不同的方法 Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:oncreate ondestroy onstop onstart onresume onpause 其实这些方法都是两两对应的,onCreate创建与onDestroy销毁; onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause; 这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢? 答案就是:在Activity被onStop后,但是没有被onDestroy

ios和android适配问题总结

*爱你&永不变心* 提交于 2020-04-02 08:25:03
相关知识点 移动端、 适配(兼容)、 ios点击事件300ms延迟、 点击穿透、 定位失效...... 问题&解决方案 手机浏览器独有的三个事件? onTouchmove,ontouchend,ontouchstart,ontouchcancel 为什么要用Zepto? jquery适用于PC端桌面环境,桌面环境更加复杂,jquery需要考虑的因素非常多,尤其表现在兼容性上面,相对于PC端,移动端的发杂都远不及PC端,手机上的带宽永远比不上pc端。pc端下载jquery到本地只需要1~3秒(90+K),但是移动端就慢了很多,2G网络下你会看到一大片空白网页在加载,相信用户第二次就没打开的欲望了。zepto解决了这个问题,只有不到10K的大小,2G网络环境下也毫无压力,表现不逊色于jquery。所以移动端开发首选框架,个人推荐zepto.js。 IOS移动端click事件300ms的延迟响应 移动设备上的web网页是有300ms延迟的,玩玩会造成按钮点击延迟甚至是点击失效。这是由于区分单击事件和双击屏幕缩放的历史原因造成的, 2007年苹果发布首款iphone上IOS系统搭载的safari为了将适用于PC端上大屏幕的网页能比较好的展示在手机端上,使用了双击缩放(double tap to zoom)的方案,比如你在手机上用浏览器打开一个PC上的网页