首页
学习
活动
专区
工具
TVP
发布

Android 研究

专栏作者
104
文章
192070
阅读量
78
订阅数
反插件化:你的应用不是一个插件(转)
Android插件化技术是应用程序级别的一项创新型技术,它的初衷主要是用于热更新,减少APK安装包的大小,以及解决65535方法数量的限制。从技术层面来说,Android插件化技术与传统意义上的动态加载还不一样,因为它在不需要声明任何特定的接口或组件的情况下,它就在可以加载或者启动整个应用程序(比如apk文件)。Android插件化技术的主要应用场景是,在同一个设备上启动多个应用的实例,也就是我们常说的"双开"。根据我们的观察,诞生Android插件化的的两个主要动机是:1是在社交APP中的多账户需求,2是在应用商店中即时启动应用程序。上面这两种应用场景均来自用户的需求。比如,一个用户既拥有Twitter的个人账户,也有一个拥有Twitter的企业账户,而又不想来回注销切换账户并重复登录,并且不想使用两个手机。Google Play中有一个很受欢迎的APP——"Parallel Space",就是采用的这项技术,它的安装量已经有5000万次。
隔壁老李头
2018-10-11
1.6K0
Java虚拟机基础——4内存回收机制
在Java中,它的内存管理包括两方面:内存分配(创建Java的时候)和内存回收,和C不同,这方面读是由JVM来完成的,避免了C/C++直接操作的风险,同时也降低了学习Java的难度。虽然内存管理完全由JVM负责,但是如果程序员不了解内存分配,就会导致高耗内存、内存泄露等问题。所以Java程序员还是要学习JVM的内存回收机制。才能写出更高效的代码。
隔壁老李头
2018-10-10
4440
Java虚拟机基础——3类加载机制
在这个框架图很容易大体上了解Java程序工作原理。首先当程序员写好.java文件后,需要先运行(假设该文件为demo.java)
隔壁老李头
2018-10-10
5300
Java虚拟机基础——2JVM运行时数据区
本篇文章主要讲解JVM运行时数据区,所以我们按照线程是否私有的维度将本篇文章一分为二,分为线程私有数据区和所有线程共有的数据区。而在线程私有的数据区又可以分为程序计数器、虚拟机栈、本地方法栈;所有线程共有的数据区又可以分为Java堆、方法区。 思维导图如下:
隔壁老李头
2018-10-10
4350
Java虚拟机基础——1Java的内存模型
最近和几个之前一起做安卓的朋友喝酒,他最近在研究JVM,我们就简单的讨论了起来,他比我研究的深很多,我也不甘堕落,自己也开始研究了一下,写了4篇文章整理了一下自己的思路,Java虚拟机整体篇幅如下:
隔壁老李头
2018-10-10
4150
Android JNI学习(五)——Demo演示
我们这里做一个简单的计算器demo,其中运算的逻辑由Native实现,而且我们采用动态注册的方式来实现
隔壁老李头
2018-08-30
5640
Android JNI学习(四)——JNI的常用方法的中文API
本文主要是结合JNI的常用接口文档进行的翻译主要是帮助我们更好的理解JNI中常用的API。具体如下:
隔壁老李头
2018-08-30
2.8K0
Android JNI学习(三)——Java与Native相互调用
前面两篇文章简单的介绍了JNI,下面我们就进一步了解下一下JNI的调用原则,要想了解JNI的调用原则, 前面我们说了JNI中的JNIEnv以及Java类型和native中的类型映射关系。下面我们先来看注册native函数
隔壁老李头
2018-08-30
1.8K0
Android JNI学习(二)——实战JNI之“hello world”
首先在Android Studio创建一个Android项目,包名为gebilaolitou.ndkdemo
隔壁老李头
2018-08-30
2.1K0
Android JNI(一)——NDK与JNI基础
Android 平台从一开就已经支持了C/C++了。我们知道Android的SDK主要是基于Java的,所以导致了在用Android SDK进行开发的工程师们都必须使用Java语言。不过,Google从一开始就说明Android也支持JNI编程方式,也就是第三方应用完成可以通过JNI调用自己的C动态度。于是NDK就应运而生了。
隔壁老李头
2018-08-30
2K0
2018年计划
这段时间我还是比较慌张的,因为赶上过年,又要回家抢票;同时我这边又换了一个新东家,然后杭州这边老房子要装修,又要临时租房子,还要搬家,直到3月4日,才刚搬完家。而且3月份我又要找装修公司,装修房子,估计3月份也会比较匆忙,所以估计3月份更新的内容也会受到一定的限制,希望大家理解。关于Android系统启动系列 我已经写完了,会陆续发布。关于2018年的计划,我是这样打算的
隔壁老李头
2018-08-30
4110
Android系统启动——8 附录2:相关守护进程简介
binder的服务总管,负责binder服务的注册和查找 代码在init.rc 602行
隔壁老李头
2018-08-30
1.5K0
Android系统启动——7附录1:Android属性系统
属性系统在Android 系统中大量使用,用来保存系统级别的设置或者在进程间传递一些简单的信息。每个属性由属性名称和属性值组成,名称通常是一串‘.’分割的字符串,这些名称的前缀有特定的含义,不能随意改动,但是前缀后面的字符串可以由应用程序来制定。而且属性值只能是字符串,如果需要在程序中使用数值,需要自定完成字符串和数值之间的转换。
隔壁老李头
2018-08-30
1.3K0
Android系统启动——6 SystemServer启动
SystemServer是Android系统的核心之一,大部分Android提供的服务都运行在这个进程里,SystemServer中运行的服务总共有60多种。为了防止应用进程对系统造成破坏,Android的应用进程没有权限直接访问设备的底层资源,只能通过SystemService中的代理访问。通过Binder,用户进程在使用SystemService中的服务并没有太多不便变之处。
隔壁老李头
2018-08-30
3K2
Android系统启动——5 zyogte进程(Java篇)
上一篇文章,我们知道在AndroidRuntime.cpp的start()函数里面是调用的Zygoteinit类的main()函数,那我们就继续研究
隔壁老李头
2018-08-30
2.1K0
Android系统启动——4 zyogte进程 (C篇)
我们大家都是知道"一鼎三足"和"三角形的稳定性",那么支撑Android系统的三个"足"是什么?即init进程、SystemServer进程和Zygote进程。本篇文章我们就好好来研究下Zygote进程
隔壁老李头
2018-08-30
2.3K0
Android系统启动——3init.rc解析
init.rc文件是以“块”(section)为单位服务的,,一个“块”(section)可以包含多行。“块”(section)分成两大类:一类称为"动作(action)",另一类称为“服务(service)”。
隔壁老李头
2018-08-30
3.6K0
Android启动流程——1序言、bootloader引导与Linux启动
前面讲解的很多内容都很抽象,所以本次系列决定"接点地气",准备开始讲解大家熟悉的Activity了,为了让我以及大家更好的理解Activity,我决定本系列的课程主要分为4大流程和2大模块。 4大流程如下:
隔壁老李头
2018-08-30
4.3K0
APK安装流程详解16——Android包管理总结
1、设计思想 2、PackageManagerService的抽象理解 3、PackageManagerService里面的数据结构 4、PackageManagerService的三大流程 5、PackageManagerService的体系结构 一、设计思想 如果你是Android 系统中的架构师,让你设计一个Android的安装系统中的PackageManagerService,你会怎么设计? 既然要设计,咱们要首先弄清几个问题,我希望大家看下面的问题的时候,多想两个问题:1、如果让你设计,你怎么设
隔壁老李头
2018-08-30
2.4K1
PMI-ACP 敏捷项目管理 考试大纲
考试大纲.png 一、领域1——敏捷准则和理念 任务1:倡导敏捷的准则和价值观,在整个团队乃至客户与团队之间形成一种共同的理念 任务2:推动并确保每个人对敏捷价值观、准组、敏捷实践和术语达成共同的理解,从而有效工作 任务3:通过对组织的教育和对过程、人员和行为的影响,支持系统或者组织层面的变革,从而让组织更高效 任务4:进行可视化管理,维护高度可视化的信息发射,显示团队真实的进展和绩效,从而增强透明度与信任度 任务5:营造一个安全、信任的团队氛围,允许每个人犯错,因为这样能够让他们从中学习并不断改
隔壁老李头
2018-08-30
1.2K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
热点技术征文第五期
新风口Sora来袭,普通人该如何把握机会?
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档