android技术周刊

2016-04-27 21:36:15 hpb21 阅读数 1756

Android Weekly 
Android Weekly 是由一群国外知名的Android 开发者维护,分享的内容不仅仅只有干货,而且还有最新的技术分享,也是Android 开发圈子最早,最有名的周报。如果想看中文版,请移步知乎专栏——《Android Weekly - 知乎专栏》。

Android开发技术周报
Android开发技术周报是由@脉脉不嘚語 维护更新,截止到现在,已经发布了28 期,分享的都是高质量的文章教程,代码库,工具,新闻视频,设计等。

Android 科学院
@duguguiyu 和豌豆荚一小撮工程师组成,分享的都是最新的Android 技术;虽然更新频率不是很高,但是质量确是很很高的,值得一看的。

开发技术前线
开发技术前线是一个高质量技术文章的聚合网站,主要翻译国外Android,iOS 的优质文章,以及招聘等内容。

App开发日报
App开发日报主要关注移动应用的开发,它每天一刊,分享的内容主要来自微博上知名的开发者推荐的内容,因此质量基本上是有保证的。

移动开发每周阅读清单
移动开发每周阅读清单是由InfoQ 维护更新的iOS 和Android 的周刊,它的前身是InfoQ 维护的Android 开发周刊和iOS 开发周刊,然后将两者合并组成了移动开发每周阅读清单。它不仅分享Android 的相关新闻,新工具,而且还有更加深入的,所以对于新生老人都很适合。

Android 周报
Android 周报是由@Android 笔记 维护,目前已更新了30 期。

干货集中营
干货集中营是由代码家和一撮编辑一同维护的Android 和iOS 的日报,每天更新,当然也有妹子,算是Android 开发更新更新最频繁的。

The Android Arsenal
Android Arsenal 主要是推荐Github 上一些流行的Android 开源项目,基本上最近热门的Android 开源项目都会出现在这里,它还对不同类库进行了分类。

codeKK 
codeKK 是一个专门分析开源项目源码的网站,由Trinea 和一群大牛维护更新的,刚开始是一个开源项目,后来建立了独立的网站,而且也有专门的分类。而且也对一些流行的开源项目的收录。

Android Blog 周刊
Android Blog 周刊 是由Jomeslu 维护更新的Android 博客周刊,截止到目前已经更新到了15 期,除了有最新的Android 开发的新闻,还有国内外博客,还有类库和人文的推荐。

Android Dev
Android Dev 是由Tikitoo 维护更新的简书专栏,主要收录在简书上Android 的技术文章,目前已经收录两百篇Android 技术文章,如果你在简书写文章,欢迎去投稿。

Android 开发经验谈
Android 开发经验谈是由张明云 维护更新的简书专栏,目前已经收录了近千篇Android 技术文章。如果你在简书写Android 技术文章,当然可以随便投稿啦

2018-07-23 00:09:19 memory01 阅读数 511

这是一个外部链接,记下来防止迷路

Android开发技术周报

2016-02-10 10:51:50 langwang2 阅读数 354

Android Weekly 


Android Weekly 是由Android 团队的成员和国外知名的Android 开发者维护,分享的内容不仅仅只有干货,而且还有最新的技术分享,也是Android 开发圈子最早,最有名的周报。如果想看中文版,请移步知乎专栏——《Android Weekly - 知乎专栏》.

Android开发技术周报


Android开发技术周报是由@脉脉不嘚語 维护更新,截止到现在,已经发布了28 期,分享的都是高质量的文章教程,代码库,工具,新闻视频,设计等。

Android 科学院


@duguguiyu 和豌豆荚一小撮工程师组成,分享的都是最新的Android 技术;虽然更新频率不是很高,但是质量确是很很高的,值得一看的。

开发技术前线


开发技术前线是一个高质量技术文章的聚合网站,主要分享Android,iOS,以及招聘等内容。

App开发日报


App开发日报主要关注移动应用的开发,它每天一刊,分享的内容主要来自微博上知名的开发者推荐的内容,因此质量基本上是有保证的。

Android开发周报


Android开发周报是郭亮在连载更新在Infoq 的周刊,它不仅分享Android 的相关新闻,新工具,而且还有更加深入的,所以对于新生老人都很适合。

2017-01-19 10:20:13 blueangle17 阅读数 421
转自:http://www.androidblog.cn/index.php/Index/detail/id/16#

本期专栏目讨论插件化开发。插件化涉及的东西很多,所以我们需要多个维度去学习。大概分为5个部分:预备知识、入门、进阶、系列、类库。一步一步深入了解插件的原理。本专栏会不定时更新相关内容,请留意更新的消息。请加入QQ群:149581646.会统一通知最新的文章。
Posted 2016-03-16 byJomeslu.
基础

1.Java 类加载器

类加载器(class loader)是 Java™中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着介绍如何开发自己的类加载器,最后介绍了类加载器在 Web 容器和 OSGi™中的应用。

2.反射原理

Java 提供的反射機制允許您於執行時期動態載入類別、檢視類別資訊、生成物件或操作生成的物件,要舉反射機制的一個應用實例,就是在整合式開發環境中所提供的方法提示或是類別檢視工具,另外像 JSP 中的 JavaBean 自動收集請求資訊也使用到反射,而一些軟體開發框架(Framework)也常見到反射機制的使用,以達到動態載入使用者自訂類別的目的。

3.代理模式及Java实现动态代理

定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象。
入门

1.Android动态加载dex技术初探

Android使用Dalvik虚拟机加载可执行程序,所以不能直接加载基于class的jar,而是需要将class转化为dex字节码,从而执行代码。优化后的字节码文件可以存在一个*.jar中,只要其内部存放的是*.dex即可使用。

2.Android插件化入门

开发者将插件代码封装成Jar或者APK。宿主下载或者从本地加载Jar或者APK到宿主中。将宿主调用插件中的算法或者Android特定的Class(如Activity)

3.插件化开发—动态加载技术加载已安装和未安装的apk

动态加载技术就是使用类加载器加载相应的apk、dex、jar(必须含有dex文件),再通过反射获得该apk、dex、jar内部的资源(class、图片、color等等)进而供宿主app使用。

4.Android动态加载技术三个关键问题详解

动态加载技术(也叫插件化技术)在技术驱动型的公司中扮演着相当重要的角色,当项目越来越庞大的时候,需要通过插件化来减轻应用的内存和CPU占用,还可以实现热插拔,即在不发布新版本的情况下更新某些模块。
进阶

1.携程Android App插件化和动态加载实践

携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验。本文将详细介绍Android平台插件式开发和动态加载技术的原理和实现细节,回顾携程Android App的架构演化过程,期望我们的经验能帮助到更多的Android工程师。

2.动态加载APK原理分享

被加载的apk称之为插件,因为机制类似于生物学的"寄生",加载了插件的应用也被称为宿主。往往不是所有的apk都可作为插件被加载,往往需要遵循一定的"开发规范",还需要插件项目引入某种api类库,业界通常都是这么做的。

3.Android插件化的一种实现

Android的插件化已经是老生常谈的话题了,插件化的好处有很多:解除代码耦合,插件支持热插拔,静默升级,从根本上解决65K属性和方法的bug等等。下面给大家介绍一下我们正在用的差价化框架。本片主要以类图的方式向大家介绍插件话框架的实现。

4.蘑菇街 App 的组件化之路

随着我街业务的蓬勃发展,产品和运营随时上新功能新活动的需求越来越强烈,经常可以听到“有个功能我想周x上,行不行”。行么?当然是不行啦,上新功能得发新版本啊,到时候费时费力打乱开发节奏不说,覆盖率也是个问题。

5.DynamicLoadApk 源码解析

DynamicLoadApk 是一个开源的 Android 插件化框架。插件化的优点包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开发(编译速度更快) (4) 按需加载,内存占用更低等等DynamicLoadApk 提供了 3 种开发方式,让开发者在无需理解其工作原理的情况下快速的集成插件化功能。

6.Android apk动态加载机制的研究

问题是这样的:我们知道,apk必须安装才能运行,如果不安装要是也能运行该多好啊,事实上,这不是完全不可能的,尽管它比较难实现。在理论层面上,我们可以通过一个宿主程序来运行一些未安装的apk,当然,实践层面上也能实现,不过这对未安装的apk有要求。我们的想法是这样的,首先要明白apk未安装是不能被直接调起来.

7.美团Android DEX自动拆包及动态加载简介

作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能、添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误.

8.途牛原创|途牛Android App的插件实现

途牛的插件化是基于dynamic-load-apk(github)实现的。定义了宿主和插件的通信方式,使得两者能够互起对方的页面,调用彼此的功能。同时对activity的启动方式singletask等进行了模式实现,并增加了对Service的支持等。总之使得插件开发最大限度的保持着原有的Android开发习惯。

9. Android apk资源加载和activity生命周期管理

博主分析了Android中apk的动态加载机制,并在文章的最后指出需要解决的两个复杂问题:资源的访问和activity生命周期的管理,而本文将会分析这两个复杂问题的解决方法。

10.APK动态加载框架(DL)解析

首先要说的是动态加载技术(或者说插件化)在技术驱动型的公司中扮演这相当重要的角色,当项目越来越庞大的时候,需要通过插件化来减轻应用的内存和cpu占用,还可以实现热插拔,即在不发布新版本的情况下更新某些模块。
系列

1.Kaedea---Android动态加载技术 简单易懂的介绍

我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装APK就能升级应用的功能(特别是 SDK项目),这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时如果也可以快速修复一些线上的BUG。

2.Kaedea---Android动态加载基础 ClassLoader的工作机制

早期使用过Eclipse等Java编写的软件的同学可能比较熟悉,Eclipse可以加载许多第三方的插件(或者叫扩展),这就是动态加载。这些插件大多是一些Jar包,而使用插件其实就是动态加载Jar包里的Class进行工作。

3.Kaedea---Android动态加载补充 加载SD卡的SO库

Android中JNI的使用其实就包含了动态加载,APP运行时动态加载.so库并通过JNI调用其封装好的方法。后者一般是使用NDK工具从C/C++代码编译而成,运行在Native层,效率会比执行在虚拟机的Java代码高很多,所以Android中经常通过动态加载.so库来完成一些对性能比较有需求的工作(比如T9搜索、或者Bitmap的解码、图片高斯模糊处理等)。

4.Kaedea---Android动态加载入门 简单加载模式

Java程序中,JVM虚拟机是通过类加载器ClassLoader加载.jar文件里面的类的。Android也类似,不过Android用的是Dalvik/ART虚拟机,不是JVM,也不能直接加载.jar文件,而是加载dex文件。

5.Kaedea---Android动态加载进阶 代理Activity模式

简单模式中,使用ClassLoader加载外部的Dex或Apk文件,可以加载一些本地APP不存在的类,从而执行一些新的代码逻辑。但是使用这种方法却不能直接启动插件里的Activity。

6.Kaedea---Android动态加载黑科技 动态创建Activity模式

还记得我们在代理Activity模式里谈到启动插件APK里的Activity的两个难题吗,由于插件里的Activity没在主项目的Manifest里面注册,所以无法经历系统Framework层级的一系列初始化过程,最终导致获得的Activity实例并没有生命周期和无法使用res资源。

7.尼古拉斯---插件开发基础篇:动态加载技术解读

在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势。本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病。

8.尼古拉斯---插件开发开篇:类加载器分析

这篇文章主要介绍了Android中主要的两个类加载器:PathClassLoader和DexClassLoader,他们的区别,联系,用法等问题,以及我们在制作插件的过程中会遇到哪些常见的问题。这篇文章也是后续两篇文章的基础,因为如果不了解这两个类的话,我们将无法进行后续的操作。

9.尼古拉斯---插件开发中篇:资源加载问题(换肤原理解析)

这篇文章主要通过现在一些应用自带的换肤技术的解读来看看,在开发插件的过程中如何解决一些资源加载上的问题,这个问题为何要单独拿出来解释,就是因为他涉及的知识很多,也是后面一篇文章的基础,我们在需要加载插件中的资源文件的时候。

10.尼古拉斯---插件开发终极篇:动态加载Activity(免安装运行程序)

这篇文章主要是讲解了如何加载插件中的Activity。从而实现免安装运行程序,同时这篇文章也是对前三篇文章知识的综合使用。下载很多应用都会使用到插件技术,因为包的大小和一些功能的优先级来决定哪些模块可以制作成插件。

11.Weishu---Android插件化原理解析——概要

类的加载可以使用Java的ClassLoader机制,但是对于Android来说,并不是说类加载进来就可以用了,很多组件都是有“生命”的;因此对于这些有血有肉的类,必须给它们注入活力,也就是所谓的组件生命周期管理.

12.Weishu---Android插件化原理解析——Hook机制之动态代理

使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的.

13.Weishu---Android插件化原理解析——Hook机制之Binder Hook

Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。

14.Weishu---Android 插件化原理解析——Hook机制之AMS&PMS

在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对AMS以及PMS的Hook方式。

15.Weishu---Android 插件化原理解析——Activity生命周期管理

之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在Android系统上运行起来?

16.Weishu---Android 插件化原理解析——插件加载机制

上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。

17.Weishu---Android插件化原理解析——广播的管理

在Activity生命周期管理 以及 插件加载机制 中我们详细讲述了插件化过程中对于Activity组件的处理方式,为了实现Activity的插件化我们付出了相当多的努力;那么Android系统的其他组件,比如BroadcastReceiver,Service还有ContentProvider,它们又该如何处理呢?

18.Weishu---Android 插件化原理解析——Service的插件化

在 Activity生命周期管理 以及 广播的管理 中我们详细探讨了Android系统中的Activity、BroadcastReceiver组件的工作原理以及它们的插件化方案,相信读者已经对Android Framework和插件化技术有了一定的了解;
类库

1.DroidPlugin

是360手机助手在Android系统上实现了一种新的插件机制

2.Android-Plugin-Framework

此项目是Android插件开发框架完整源码及示例。用来通过动态加载的方式在宿主程序中运行插件APK。

3.Small

世界那么大,组件那么小。Small,做最轻巧的跨平台插件化框架。里面有很详细的文档

4.dynamic-load-apk

Android 使用动态加载框架DL进行插件化开发

5.AndroidDynamicLoader

Android 动态加载框架,他不是用代理 Activity 的方式实现而是用 Fragment 以及 Schema 的方式实现

6.DynamicAPK

实现Android App多apk插件化和动态加载,支持资源分包和热修复.携程App的插件化和动态加载框架.

7.ACDD

非代理Android动态部署框架

8.android-pluginmgr

不需要插件规范的apk动态加载框架。
参考视频

1.DroidPlugin的实现原理及其应用

Droid Plugin是360手机助手在2015年初研发的一个全新的基于Android平台的插件机制.

2.android插件化及动态部署

阿里技术沙龙第十六期《android插件化及动态部署》视频
2016-09-12 10:02:37 weixin_33884611 阅读数 20
  • 我们是聚划算无线Android团队,目前负责聚划算客户端、手淘天猫聚划算插件、淘抢购插件、俪人购客户端等,欢迎交流同时欢迎优秀的人才转岗或者加盟

---

    天气正在逐渐转凉,嗯,这就是第三期的聚划算 Android 技术周刊。
    ╮(╯▽╰)╭

Android 热点资讯

  • 安卓7.0 正式通知更新啦

    可惜我的手机是nexus6,没有通知到,不过没关系,还可以申请beta测试计划,注册设备以后就可以看到更新通知啦~
    
    https://www.google.com/android/beta
    

  • 调查:Android的领先地位稳固

    http://www.infoq.com/cn/news/2016/08/survey-android-ios
    


Android 优秀文章

  • Android Project Guidelines

怎么说呢,算是一个 Android 开发的编程规范吧,团队协作

https://github.com/bufferapp/android-guidelines/blob/master/project_style_guidelines.md

  • Android资源混淆工具使用说明

    https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md
    

  • 扫盲一下贝塞尔曲线

    最近折腾动画,一直在接触这玩意儿~
    
    http://gold.xitu.io/post/57adbd9c79bc440058c9962d
    

  • 应用开发进阶必经之路之性能优化(上)

    http://mp.weixin.qq.com/s?__biz=MzIwNjQ1NzQxNA==&mid=2247483802&idx=1&sn=baaf65910acfa1aebe20a727daeb9877&scene=21#wechat_redirect
    

  • 应用开发进阶必经之路之性能优化(下)

    http://mp.weixin.qq.com/s?__biz=MzIwNjQ1NzQxNA==&mid=2247483803&idx=1&sn=4cdb4ba55401bdf80cc1e41dbcbb5fb1&scene=1&srcid=0823BixP6gl4mGiQodSX09Py#rd
    

  • 一个关于java.lang.VerifyError异常的Bug的排查过程

    https://yrom.net/blog/2016/08/22/java-lang-verifyerror-on-android/
    


Android 优秀开源库

PuzzleView

gif-demo1.gif

https://github.com/wuapnjie/PuzzleView


InfiniteCycleViewPager

68747470733a2f2f6c68352e676f6f676c657573
68747470733a2f2f6c68362e676f6f676c657573
68747470733a2f2f6c68332e676f6f676c657573

https://github.com/DevLight-Mobile-Agency/InfiniteCycleViewPager


ShapeRipple

Shape Ripple是一个模拟涟漪效果的library,可以创建自定义的涟漪形状。

68747470733a2f2f6d656469612e67697068792e

https://github.com/poldz123/ShapeRipple


Android 推荐产品

Freeline - Android平台上的秒级编译方案

Freeline is a fast build and deployment tool for Android. Caching reusable class files and resource indices, it enables incrementally building Android apps, and optionally deploying the update to your device with hot swap.

摘要: Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想, 并对代码及资源编译流程做了深入的性能优化。

687474703a2f2f7777342e73696e61696d672e63

https://yq.aliyun.com/articles/59122
https://github.com/alibaba/freeline

fir.flight

An android version Test Flight by using the testing app distribution service provided by fir.im

https://github.com/ryanhoo/fir.flight

Android 基础课堂

Android 基础课堂 - Lesson.3

https://yq.aliyun.com/articles/60493?spm=5176.8091938.0.0.U9CAxk

分享者:
封羽 陌眠


TB1eEd7LpXXXXa6XFXXXXXXXXXX-2560-1440.jp