在成为一个Android Developer后,其实一直都很好奇,一个.apk文件是怎么产生的,它是怎么从一堆.java、.xml等文件变成一个.apk的呢,随着知识体系的完善,这个问题貌似越来越清楚,但是一直未曾认认真真的梳理过一遍流程,恰好最近碰到相关问题,就借此机会总结一下,题其衣裳,以记其事~
Android 屏幕适配的理解
作为一名Android Developer,有一个“顽疾”一直都无法绕开,那就是屏幕适配,毕竟Android自由的同时,也引入了很多“奇奇怪怪”的东西,比如各种各样的屏幕大小/分辨率等等,也就是导致了作为应用开发者,必须思考如何让自己的应用正常适配更多的机型。本文主要介绍一些关于屏幕显示的基本概念,以及目前主流的屏幕适配思想。
Android 布局优化
关于布局优化,可能大家都经常有听到,其实核心的就是两点:
尽可能的让自己的布局简单起来;
尽量让控件在用的时候再初始化;
针对这两点,今天我们来介绍一下Android 提供的三个用来优化布局的标签,分别是include、merge与ViewStub,其中ViewStub是动态加载视图到内存。
Flutter Widget 生命周期
作为一名客户端开发,无论是Android/IOS,生命周期的概念深入骨髓,那么一个优秀的跨平台方案,Flutter Widget是怎么处理生命周期的呢,接下来就让我们一起了解一下,以图镇楼。
Flutter 编译模式
在接触到Flutter后,我就在思考一个问题,作为一个跨平台方案,Flutter究竟是如何在不同的CPU架构、不同的操作系统上运行的呢,它采取了怎么的编译策略,对应平台的编译产物是什么呢?本文以Android平台为例,进行了分析整理。
Gradle 基础知识
本文将对Gradle的一些基本概念、用法进行总结,从而避免自己在Android开发过程中的“会而不知所以然”,关于Gradle的高阶用法可以见参考,本文就不再赘述;
使用Bazel构建Android应用
Bazel是一个类似于Make的编译工具,是Google为其内部软件开发的特点量身定制的工具,如今Google使用它来构建内部大多数的软件。Google认为直接用Makefile构建软件速度太慢,结果不可靠,所以构建了一个新的工具叫做Bazel,目前Tensorflow就是采用Bazel编译,本文就是使用Bazel构建Android应用的一次尝试。
Android OpenGL ES 绘制镜像纹理
在音视频蓬勃发展的今天、加之传统影像和AI的遭遇,在包含手机在内的终端产品上、OpenGL ES技术不可忽缺,习之~