一种Android分包策略推荐

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

如何加快Gradle的构建速度

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

Android开发的二十条经验

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

Java内存模型与线程

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

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

引子Android插件化与热更新技术日渐成熟,当你研究这些技术时会发现类加载器在其中占据重要地位。Java语言天生就有灵活性、动态性,支持运行期间动态组装程序,而这一切的基础就是类加载器。Java中的类加载器Java灵活性和动态性的原因Java源代码被编译器编译成字节码,即从.java文件编译为.class文件,而.class文件就是通过类加载器加载到虚拟机内存中的。虚拟机的类加载(Class Lo...
阅读(1091) 评论(1)

一种Android客户端架构设计分享

技术发展日新月异,业界各种Android客户端架构设计,五花八门,但我们不能简单地说哪种架构更好,因为脱离业务谈架构是没有任何意义的,适合业务的才是好架构。而架构也不是一成不变的,随着业务的发展,也许当初设计的架构已不足以支撑目前的业务,那么就需要改变之前的架构。接下来将分享下我们Android客户端的架构设计,在App的某个业务发展阶段或许有一些参考意义。分层化与模块化分层化与模块化应该是任何软件...
阅读(3653) 评论(11)

Android Instrumentation源码分析(附Activity启动流程)

Instrumentation概念官方说明Instrumentation类位于android.app包中,继承自java.lang.Object,一些测试用类如InstrumentationTestRunner或MultiDexTestRunner直接或间接继承自该类。官方对于该类的解释如下: Base class for implementing application instrumenta...
阅读(558) 评论(0)

Android Window纪要

Window概念理解在Andriod开发中经常提到Activity和View,而位于它们之间的Window却较少涉及。Window所表示的是一个抽象的概念,实际上所有View都是依附于Window之上的,包括Activity中的视图、Dialog中的视图以及Toast中的视图。另外View的事件分发也是由Window传递给View的。Window的管理Window是一个抽象类,其具体实现为Phone...
阅读(229) 评论(0)

面对五花八门的新技术,如何看待与学习

A:最近VR很火啊,大家都在争夺这片蓝海,要学习VR了! B:Google开源TensorFlow了,看来人工智能(AI)是发展方向啊! C:微信推出小程序了,是不是Android、iOS程序员要失业了?赶紧学一番! D:大数据时代来了,是不是要学一下Python呢? E:React、Vue都不知道还好意思说是做前端的!学起来! F:…… 现在的程序...
阅读(479) 评论(2)

App内存占用优化

RAM(Random-access memory)在任何软件开发中都是非常宝贵的资源,移动操作系统由于其物理内存的局限性更是如此。尽管ART(Android Runtime)与Dalvik虚拟机会执行常规的垃圾回收,但这并不意味着可以忽略App中的内存分配与释放。我们应当避免引起内存泄露,如持有静态成员变量而导致无法释放,应当在应用的生命周期回调中释放掉所有的引用。本文主要介绍如何减少App中的内存...
阅读(329) 评论(0)

Android高性能编码最佳实践

本文主要讲一些代码级别的细微优化,但别小看这些,当它们组合起来的时候就能提高App的整体性能。这类的优化不同于算法与数据结构优化所能达到的显著效果,但我们应该把它作为自己的编码习惯从而写出高效的代码。写出高效代码的两个基本原则: 不要做不必要的事情 不要分配不必要的内存 优化一个App时最棘手的问题在于它可能运行于不同的硬件设备上,不同的虚拟机版本、不同的处理器从而导致不同的运行速度;设备有无JIT...
阅读(310) 评论(0)

Android布局性能优化指南

Android布局是应用的重要组成部分,它直接影响到用户的体验。如果布局不合理则会导致内存占用过多且UI卡顿。Android SDK提供了一些工具可以帮助我们快速定位到影响性能的布局问题,一般可从以下几个方面来进行布局优化。优化布局层次结构众所周知,复杂的网页加载速度很慢,Android应用也一样,复杂的布局结构也将引起性能问题。下面来说明如何使用工具来检查布局并发现性能瓶颈。我们知道,应用中的每个...
阅读(292) 评论(0)

APK瘦身指南

用户一般会不会在应用市场上下载那些看起来很大的App,尤其是当他们使用2G或3G网络或者是按流量付费的时候。因此这篇文章将讲述如何减小APK的大小,从而让更多的用户来下载你的应用。了解APK文件的结构在探讨如何减小App大小之前,有必要先弄清楚APK文件的结构。APK实质上是一个ZIP压缩文件,它包含了构成App的所有文件,如Java类文件,资源文件,以及编译后的资源文件等。一个APK包含以下几个文...
阅读(262) 评论(0)
132条 共9页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:190247次
    • 积分:3116
    • 等级:
    • 排名:第10733名
    • 原创:101篇
    • 转载:14篇
    • 译文:17篇
    • 评论:138条
    微信公众号

    Android修行日记

    文章分类
    最新评论