JNI 编程详解-基本数据类型

C/C++语言基础 –> JNI编程 –> NDK编程 –> 音视频处理 –> 图像处理等等 ,从零到一 , 零基础学习NDK开发 。学习本专题 , 你需要具备一定的Android开发知识 C/C++基础, 知道如何创建一个Android工程 , 有一定的开发经验更佳 。 JNI可以做什么 JNI是Java平台的一个非常有用的特性,它让同时使用JAVA和C/C++协作开发应用程序成为可能。 JNI (Java Native Interface ,Java本地接口) 是一种编程框架,可以使Java虚拟机或Java程序调用本地应用或库。 你的第一个JNI程序 新建一个支持C++的项目 添

阅读全文

2018 已过,2019 继续向前

今天是2019年的第2天,回想2018年的点点滴滴,有过焦虑、有过烦恼、有过开心喜悦、有过失落.但是2019年已经开始了,抛开过去继续前行,当然也要总结一下2018年的学习之路,重新规划计划继续前行. 也欢迎大家去我的个人网站,更好的阅读体验 技术总结 从第一篇博客开始,2018年3月8号 写下了2018年的第一篇博客 2018年写了57177个字,收获了574个赞、195个粉丝,虽然少的可怜,但是提高了自己的表达能力也结交了好多大佬. 回顾我的2018年 还有好多文章没有完成,在2019年会计划陆续完成,并开放出来. Android插件化技术 * Android插件化技

阅读全文

Android插件化技术之旅 2-广播插件的实现与安装apk原理

前言 Android技术如今已很成熟了,组件化、插件化、热修复等等框架层出不穷,如果只停留在单纯的会用框架上,技术永远得不到成长,只有懂得其原理,能够婉婉道来,能够自己手动写出,技术才会得到成长,与其焦虑未来,不如把握现在。本篇将手写教大家写出插件化框架,插件化技术是Android高级工程师必备的技术之一,懂其思想,知其原理。本篇专题将由10篇文章来详细的讲解插件化技术,深耕一个技术领域,才能懂得如何更广阔的横向发展。 本专题代码地址 在上一篇文章中,我们实现了,如何启动一个插件,和启动插件内的Activity和Service. 我们再来回顾一下如何启动一个插件: 1. 首

阅读全文

彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想

OkHttp 现在统治了Android的网络请求领域,最常用的框架是:Retrofit+okhttp。OkHttp的实现原理和设计思想是必须要了解的,读懂和理解流行的框架也是程序员进阶的必经之路,代码和语言只是工具,重要的是思想。 在OKhttp 源码解析之前,我们必须先要了解http的相关基础知识,任何的网络请求都离不开http。 概述 okhttp的源码分析,网上有好多博客讲解,但讲解的都是一些源码可有可无的知识,并没有将okhttp的核心设计思想讲解到位,我们阅读一些框架的源码,学习的其实就是其设计思想,了解了整体的框架设计,在深入了解细节的实现会更加容易。 OkHttp 源码

阅读全文

Android插件化技术之旅 1 开篇 - 实现启动插件与调用插件中的Activity和Service

前言 Android技术如今已很成熟了,组件化、插件化、热修复等等框架层出不穷,如果只停留在单纯的会用框架上,技术永远得不到成长,只有懂得其原理,能够婉婉道来,能够自己手动写出,技术才会得到成长,与其焦虑未来,不如把握现在。本篇将手写教大家写出插件化框架,插件化技术是Android高级工程师必备的技术之一,懂其思想,知其原理。本篇专题将由10篇文章来详细的讲解插件化技术,深耕一个技术领域,才能懂得如何更广阔的横向发展。 本专题代码地址 什么是插件化? 插件化技术的起源于免安装运行APK的想法,这个免安装的APK就是一个插件,支持插件化的app可以在运行时加载和运行插件,这样便可以将ap

阅读全文

Android组件化专题 - 组件化配置

demo地址 Android组件化专题,详细讲解组件化的使用及配置,以及实现的原理。 1. 组件化的由来 模块化、组件化和插件化的关系? (摘自百度百科)模块化是指解决一个复杂的问题时自顶向下逐层把系统划分为若干个模块的过程,各个模块可独立工作。 在技术开发领域,模块化是指拆分代码,当代码特别臃肿的时候,用模块化将代码分而治之、解耦分层。 在Android的领域模块化具体的实施方法为:组件化和插件化。 更加详细的讲解 组件化和插件化的区别 一套完整的插件化或组件化都必须能够实现单独调试、集成编译、数据传输、UI 跳转、生命周期和代码边界这六大功能。插件化和组件化最重要而且是唯一

阅读全文

Android组件化专题 - APT 实践

APT apt为何如此重要呢?现今越来越多的第三方库使用了apt技术,Dagger2、ButterKnife、ARouter等,在编译时根据annotation生成相关的代码逻辑,动态的生成Java class文件给开发带来了很大的便利。 首先要懂得annotation (注解)相关的基础知识。 APT 的全称为:Annotation Processing Tool 可以解释为注解处理器, 它对源代码文件进行检测找出其中的Annotation,使用指定的Annotation进行额外的处理。 Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外

阅读全文

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post $ hexo new "My New Post" More info: Writing Run server $ hexo server

阅读全文

Android组件化专题 - 路由框架原理

在路由框架之前,我们先了解什么是APT,并实践ButterKnife绑定findById的小功能。为什么先要讲解apt,因为路由的实现apt是核心的代码.看下面链接 APT 实践。 本文项目地址 为什么需要路由 我们知道路由就是实现页面的跳转,然而Android原生已经支持app页面间的跳转。 一般来说我们会这样写: Intent intent = new Intent(this, MainActivity.class); intent.putExtra("dataKey", "dataValue"); startActivity(intent); 如果在封装一层这样写: pu

阅读全文

Android组件化专题 - 路由框架进阶模块间的业务通信

上一篇文章,讲解了路由框架实现的原理,并实现了基本的路由框架 页面路由的跳转 Android组件化专题 - 路由框架原理。 本篇文章来对基础的路由框架进阶,来实现模块间的业务通信功能。 代码地址 我们来看以下实现的效果图: app –> module1module1 –> module2首先我们先回顾,路由框架的设计思路,如下图: 1. 通过注解 Activity 类,注解处理器处理注解(APT)动态生成路由信息。 2. 收集路由:通过定义的包名,找到所有动态生成的类,将路由信息存储到本地仓库 (rootMap). 3. 页面跳转:根据注解的路由地址,从本地仓库中找到相关的路

阅读全文