第12页
-
Android 模块化开发实战:Dagger2实现模块化(组件化)
随着移动平台的不断发展,软件慢慢变的越来越复杂,业务繁多,体积臃肿;为了降低大型软件复杂性和耦合度,同时也为了适应模块重用、多团队并行开发测试等等需求,Android社区提出了两种解决方案:模块化和插件化。插件化暂且按下不提,本文主要讲述模块化。从基本思路上来讲,模块化的实现大体上来讲都是差不多的,本文将着重讲述基本思路。此外,在实践的过程中也有特别的地方:Databinding在模块化中的坑,Dagger2在模块化中的应用,页面统一跳转,模块化通信方式设计,模块层级架构设计等。这些问题将在本文和后面的系列文章中一...
-
使用阿里ARouter路由实现组件化(模块化)实战开发流程
Android平台中对页面、服务提供路由功能的中间件,我的目标是 —— 简单且够用。这是阿里对Arouter的定位,那么我们一起来梳理一下Arouter使用流程,和使用中我所遇到的一些问题!先来看看有哪些功能模块化的要解决的问题模块间页面跳转(路由);模块间事件通信;模块间服务调用;模块的独立运行;模块间页面跳转路由拦截(登录)其他注意事项;对项目模块进行划分app模块:主模块,主要进行搭载各个模块的功能。lib_base:对ARouter进行初始化,和放置一些各个模块公用的封装类。lib_icon:放置图片、as...
-
ARouter在Android8.0机器上直接android studio instant run运行apk会异常
ARouter在Android8.0机器上直接android studio instant run运行apk会异常,设置下面即可。...
-
Android ANR 问题产生原因和解决详解
ANR简介ANR,是“Application Not Responding”的缩写,即“应用程序无响应”。在Android中,ActivityManagerService(简称AMS)和WindowManagerService(简称WMS)会监测应用程序的响应时间,如果应用程序主线程(即UI线程)在超时时间内对输入事件没有处理完毕,或者对特定操作没有执行完毕,就会出现ANR。对于输入事件没有处理完毕产生的ANR,Android会显示一个对话框,提示用户当前应用程序没有响应,用户可以选择继续等待或者关闭这个应用程序(...
-
Android渲染机制详解
1.知识储备CPU: 中央处理器,它集成了运算,缓冲,控制等单元,包括绘图功能.CPU将对象处理为多维图形,纹理(Bitmaps、Drawables等都是一起打包到统一的纹理).GPU:一个类似于CPU的专门用来处理Graphics的处理器, 作用用来帮助加快栅格化操作,当然,也有相应的缓存数据(例如缓存已经光栅化过的bitmap等)机制。OpenGL ES是手持嵌入式设备的3DAPI,跨平台的、功能完善的2D和3D图形应用程序接口API,有一套固定渲染管线流程. 附相关OpenGL渲染流程资料DisplayLis...
-
Android性能优化方案
说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才感觉运行速度稍微提高了点,就算手机在各种性能跑分软件面前分数遥遥领先,还是感觉无论有多大的内存空间都远远不够用。相信每个使用 Android 系统的用户都有过以上类似经历,确实,Android 系统在流畅性方面不如 IOS 系统,为何呢,明明在看手机硬件配置上时,Android 设备都不会输于 IOS 设备,甚至都强于...
-
Android Studio常用快捷键教程(图解)
代码跳转描述:跳转是为了方便代码位置的定位,存在两种跳转:在定义处可以跳转到调用处,在调用处可以跳转到定义处。快捷键:Ctrl + 鼠标单击,如下图所示:2方法间跳转描述:从一个类方法跳转到临近的一个类方法。快捷键:Alt + Up/Down,如下图所示:3前后位置导航描述:将光标移到前或后编辑历史记录处。快捷键: 前: Ctrl+Alt+Right 后: Ctrl + Alt + Left,如下图所示:4代码自动补全描述:补全可以加快我们的编码速度。快捷键:Ctrl+Shift +...
-
Android NDK开发:JNI实战详解
1. Hello World NDK在开始实战练习前,你需要先大致了解运行一个 Hello World 的项目大概需要做什么,有哪些配置以及配置的具体意思。 Android Studio(2.2以上版本)提供两种方式编译原生库:CMake( 默认方式) 和 ndk-build。对于初学者可以先了解 CMake 的方式,另外,对于本文可以暂时不用了解 so 库如何编译和使用。一个 Hello World 的 NDK 项目很简单,按照流程新建一个 native 库工程就可以,由于太简单,而且网上也有很多教程,这里就没必...
-
Android NDK开发:JNI入门详解
1. JNI 概念1.1 概念JNI 全称 Java Native Interface,Java 本地化接口,可以通过 JNI 调用系统提供的 API。操作系统,无论是 Linux,Windows 还是 Mac OS,或者一些汇编语言写的底层硬件驱动都是 C/C++ 写的。Java和C/C++不同 ,它不会直接编译成平台机器码,而是编译成虚拟机可以运行的Java字节码的.class文件,通过JIT技术即时编译成本地机器码,所以有效率就比不上C/C++代码,JNI技术就解决了这一痛点,JNI 可以说是 C 语言和 J...