• HOME
  • ARCHIVE
  • GITHUB
  • 插件化中 Classloader 的加载 dex 分析

    Nov 16, 2016

    作者:blue

    版权声明:本文图文为博主原创,转载请注明出处。

    1、Java 类加载器

    提到 Android 插件化,一个基础的知识点就是 Java 的类加载机制。这部分知识请参考深入探讨 Java 类加载器,以下摘录部分内容。

    1.1 类加载器的树状组织结构

    Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写的。系统提供的类加载器主要有下面三个:

    • 引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。
    • 扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。
    • 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。
    ...阅读全文
  • Android应用安装流程分析

    Oct 30, 2016

    作者:blue

    版权声明:本文图文为博主原创,转载请注明出处。

    这段时间在研究插件化相关的技术,追根溯源,所以干脆把Apk的安装流程梳理了一遍,与大家共享,望指正!

    本文基于Android 5.1的源码,分析Apk安装流程。

    Apk是Android Pakage的缩写,即Android安装包,Apk文件其实是zip格式,一般包含一个或多个dex文件、resources.arsc、AndroidManifest.xml、res目录、META-INF目录及包含so库的lib目录,这里就不在啰嗦。

    ...阅读全文
  • Android应用启动流程分析

    Aug 20, 2016

    作者:blue

    版权声明:本文图文为博主原创,转载请注明出处。

    大家有没有好奇过点击Launcher图标时,到唤起一个应用页面,这个流程会是怎么样的?本文的目的就是尽可能梳理清楚流程,能够让大家对整个流程有一个相对清晰的认知。

    在我们开始之前,希望您能最好已经满足以下条件:

    • 有一份编译后的Android源码(亲自动手实践才会有更深入的理解)
    • 对Binder机制有一定的了解

    本文启动流程分析基于Android 5.1的源码。为什么是5.1的源码呢?因为手边编译完的代码只有这个版本…另外,用什么版本的源码并不重要,大体的流程并无本质上的区别,仅仅是实现细节的调整,找一个你熟悉的版本就好。

    ...阅读全文
  • Android插件化学习

    Jul 11, 2016

    插件化技术(也叫动态加载技术)在技术驱动型的公司中扮演着相当重要的角色,当项目越来越庞大的时候,需要通过插件化来给应用瘦身,还可以实现热插拔,即在不发布新版本的情况下更新某些模块。对于业务迭代较快的公司,可以减少发包次数而且有很好的覆盖度。

    以下为这段时间学习插件化的一些笔记或摘要及自己的一些理解。

    ...阅读全文
  • TurboRecyclerViewHelper之实现Adapter的优化封装

    Jun 18, 2016

    上次讲到实现RecyclerView的功能扩展,本次就接着介绍针对RecyclerView.Adapter的封装的一些想法。

    1、功能介绍

    随着移动端的蓬勃发展,复杂的产品布局也变成了家常便饭,复杂的布局排列组合也成了常态。

    ...阅读全文
  • TurboRecyclerViewHelper之实现RecyclerView的功能扩展

    Jun 1, 2016

    自从使用了RecyclerView再也回不去了,什么ListView、GridView统统让他们退休了。必须安利起来,用了才能体会它的神奇!

    根据使用RecyclerView以来,拓展的一些功能及对RecyclerView.Adapter的封装,想在这里跟大家分享一些经验,还望指正。

    1. 功能介绍

    基于对RecyclerView在使用过程中的一些痛点写了这个开源项目 TurboRecyclerViewHelper 。功能点详见README。

    本次主要介绍针对TurboRecyclerView上拉/左滑的功能的实现及思路。

    下面直接进入正题…

    ...阅读全文
  • Android代码规范

    May 14, 2016

    一、概述

    本文档主要用于帮助Android开发人员规范代码及资源文件命名等,使大家尽量保证一个整洁的编程风格。

    二、Java命名规范

    本命名规范主要基于骆驼命名规则(对于这个都保证不了的代码简直不能忍)。

    2.1 不要使用拼音命,避免使用缩写

    # 所有的名称命名应该简洁而富有意义,尽量使用完整单词。增加必要的注释。

    # 除非该缩写被更广泛的使用,例如URL、HTML。

    2.2 包的命名

    # 包名由小写的字母组成,例如以 cc.solart.<业务模块名>.<子模块名>命名

    # 一个模块是一个功能相对独立的模块,应谨慎创建新的模块名

    2.3 类的命名

    # 类名的首字母必须大写,如果由多个单词组成,多个单词直接连接,每个单词的首字母必须大写,其他字母小写。例如:public class LoginActivity

    # 类的域定义考量, 非公开类不要用public(注意类的有效作用域)

    2.4 抽象类、接口的命名

    ...阅读全文
  • Android WebView加载html5及JS交互框架

    Mar 25, 2016

    当前越来越多的app中嵌入H5,想跟大家分享一下具体在项目中的使用和设计,故写了这个开源项目,欢迎大家批评指正。

    在这里介绍一下OpenWeb项目基础的框架设计。

    1.功能介绍

    基于WebView设计的H5页面的加载框架,可以自动管理回退栈,可以支持js与native的交互,可配合下拉刷新控件,可修改横向进度条。

    2.设计

    ...阅读全文
  • Hello World

    Feb 20, 2016
    ...阅读全文
上一页

© 2015 - 2020 solart, powered by Hexo and hexo-theme-apollo.