LocalBroadcastManager原理分析及应用

引言Android页面或模块之间通信的方法有很多,如Intent传值、startActivityForResult、EventBus(RxBus)等,大家追求的无非是解耦以及高灵活性;我们自己的应用中使用了基于Android消息机制封装的一套通信体系,且不谈这些,今天的主角是本地广播。本地广播是系统提供的一种应用内通信方式,它跟全局广播相比,其运行机制是不同的。全局广播是系统级别的,需要跨进程调用,...
阅读(50) 评论(0)

基础回顾——Java对象创建、内存分配、访问定位概述

对象创建于内存分配Java中创建对象并为其分配内存的过程如下: Java语言层面执行new关键字在Java中,通常使用new关键字来创建一个对象(还没有对象的可以试试^_^),对应在虚拟机中会触发一条new指令。 虚拟机处理new指令当虚拟机触发一条new指令时,首先根据指令参数去常量池中检查是否有相关类的符号引用,进一步检查它是否已经被加载、解析和初始化,如果没有,则需要先加载类。对类加载相关的信...
阅读(87) 评论(0)

Hybrid框架之交互通信篇

前言虽然有些应用在使用React Native或Weex开发,但综合来看,业内还是以混合开发模式为主,从我们自家的App来看,H5业务所占比重越来越高,目前大概占到35%左右,因此一套好的Hybrid开发框架必不可少。混合开发的一般原则为交互较少、上线周期短、展示性质的页面使用H5开发,如节日活动页、商品秒杀页面等。Hybrid框架要考虑的事情非常多,如页面加载速度、预加载及缓存机制、与原生交互通信...
阅读(139) 评论(0)

Android应用快捷方式

有的App会给用户提供快捷方式,8.0之前我们多是通过发送com.android.launcher.action.INSTALL_SHORTCUT 广播的方式来实现。但在8.0的系统行为变更中指出,该广播变为私有的隐式广播,因此原来创建快捷方式的方法在8.0的系统上将不再有效,官方推荐我们使用ShortcutManager来创建应用快捷方式。快捷方式应用场景及类型快捷方式应用场景Android 7....
阅读(185) 评论(0)

Android架构组件

这篇架构指南面向有一定Android开发基础并想了解高质量、高稳定性App最佳实践及推荐架构的开发者。 注意:这篇指南假设读者熟悉Android Framework,如果你是Android开发新手,建议先去学习入门系列课程,这些课程也是作为学习本指南的基础。 App开发者面临的常见问题移动开发不同于传统的桌面程序开发,桌面程序一般都有唯一的快捷方式入口,并且常作为单进程存在;而Android A...
阅读(1907) 评论(2)

业内移动App架构参考

业内移动App架构参考近一两年,业内一些移动应用都分享了各自的架构,Android官方也给出过一些架构示例,如MVP、Android Architecture Components等。以下是一些不错的移动架构分享的汇总,方便大家学习查看(排名不分先后)。此列表只是部分,其中也有两个并非移动应用架构,但同样值得学习,另外读者有补充的可以评论留言,我后续会补充该列表。 人人车Android客户端架构演进...
阅读(460) 评论(0)

Android全面屏适配

什么是全面屏概念很多人可能把全面屏跟曲面屏混淆,其实这是两个不同的概念。一般手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.777777……,全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximum aspect ratio)为1.86,即能够兼容16:9的屏幕。一些手机厂商为了追求更大的屏幕空间以及更极致的用户体验,于是提高了屏幕纵横比,17:9...
阅读(1526) 评论(1)

Android应用架构

最近整理Android架构的一些东西,想到了此文,虽然是两年前的一篇文章了,却依然很有参考价值,对文中的架构演进过程深有同感,现在也有相当一部分App采用的是类似架构。——by 译者Android应用架构 从传统的Activity+AsyncTask到RxJava驱动的MVP架构。 一个软件代码的不同部分应该是相互独立的,但可以在一起完成工作,就像一个运转良好的机器 。Android开发生态发展...
阅读(1603) 评论(5)

一种Android分包策略推荐

分包的重要性在架构一个App时,大家往往都在关注新潮的技术,却忽略了一点,那就是分包。很多人可能没有一套分包的原则,凭感觉甚至随心所欲地创建package或将代码放到任意的package中。虽然最终不会影响App功能,但这个问题其实非常严重。一种不好的分包策略带来的影响将会一直持续在App的开发迭代周期中,主要表现为以下几点: 代码混乱,功能模块界限模糊 不易阅读与维护,尤其对新人来说 功能扩展与重...
阅读(1684) 评论(0)

如何加快Gradle的构建速度

Google I/O 2017已经过去几周了,相信大家都参与了这次会议的许多专场。本届I/O的一个具有实际意义的话题是How to speed up your slow Gradle builds。在该专场会议上,Android Studio的工具团队向大家推荐了10条非常有用的建议用来加快gradle的构建速度。个人决定把这些建议整理成一个方便使用的列表,分享如下: 免责声明:这些建议并非个人...
阅读(1047) 评论(0)

Android开发的二十条经验

我们可以通过自己的摸索实践学到知识,还可以通过学习他人的经验来提升自己,显然第二种是更快的方式。下面是日常Android开发过程中总结出来的一些经验,分享如下: IDE首选Android Studio,并善用优秀的Android Studio插件,如ADB Idea、GsonFormat等 熟练使用常用的ADB命令,可以提高开发效率 遵循Android特性与设计规范 根据功能模块而不是类型来分包 调...
阅读(342) 评论(0)

Java内存模型与线程

前言本文由PPT整理而来。Page1目录 进程与线程 Java内存模型 Java线程 Page2进程 一般一个应用程序对应一个进程 进程有自己的资源和内存地址空间 各个进程之间互不干扰 进程会保存程序的运行状态,支持切换及恢复 进程使操作系统看起来同一时刻有多个任务在执行 Page3线程 一个进程可以有多个线程 多个线程共享同一进程的资源和内存空间 线程创建、调度、切换及线程间通信的开销小于进程 U...
阅读(388) 评论(0)

libxxx.so- text relocations问题的终极解决方案

问题表现形式错误或警告日志当targetSdkVersion>=23且使用debug签名时,在6.0+的Android设备上运行App会输出以下错误Log: E/linker: /data/app/packagename/lib/arm/libxxx.so: has text relocations W/System.err: java.lang.UnsatisfiedLinkError:...
阅读(6702) 评论(2)

RemoteViews原理分析及应用

转载请注明出处:http://blog.csdn.net/ahence/article/details/62418926 RemoteViews基本概念RemoteViews乍一看名字似乎也是一种View,实则不然,它并不是View。来看RemoteViews的定义及官方说明:/** * A class that describes a view hierarchy that can be dis...
阅读(1672) 评论(0)

Java类加载器及Android类加载器基础

引子Android插件化与热更新技术日渐成熟,当你研究这些技术时会发现类加载器在其中占据重要地位。Java语言天生就有灵活性、动态性,支持运行期间动态组装程序,而这一切的基础就是类加载器。Java中的类加载器Java灵活性和动态性的原因Java源代码被编译器编译成字节码,即从.java文件编译为.class文件,而.class文件就是通过类加载器加载到虚拟机内存中的。虚拟机的类加载(Class Lo...
阅读(1393) 评论(1)
140条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:235677次
    • 积分:3607
    • 等级:
    • 排名:第9491名
    • 原创:106篇
    • 转载:14篇
    • 译文:19篇
    • 评论:154条
    微信公众号

    Android修行日记

    最新评论