![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android进阶
文章平均质量分 77
JackOu1110
android开发工程师
展开
-
Android系统启动流程分析
title: Android系统启动流程分析date: 2021-09-27 23:35:00tags:- 系统启动- Android- Frameworkcategories: Frameworkkeywords: ‘Android,系统启动,Framework’description: 此笔记记录分析Android系统启动过程的分析。cover: https://upload-images.jianshu.io/upload_images/13838098-709a95ad43e71.原创 2021-10-10 19:36:01 · 4284 阅读 · 1 评论 -
基于源码从零开始编译第一个app
前言《Android源码编译》中我详细叙述了有了源码之后,如何把原生的代码编译成功的过程。现在有了原生的系统镜像之后,我们是不是也应该编一个app在系统中运行呀,好,那就开始吧,一切从HelloWorld开始。1.创建工程1.1 搭建最小工程模块还记得以前学习单片机的时候,都是从最小系统搭起,那么我们创建工程,最小的工程目录会包含哪些东西呢。见下图,至少包含:AndroidManifest.xml配置文件Android.mk 编译脚本文件res目录 用于放资源文件src目录 用原创 2021-03-08 12:00:14 · 1160 阅读 · 0 评论 -
徒手搭建编译环境,编译Android源码--手把手,嘴对嘴版本
作为有点点小追求的Android Developer,应该都需要拥有一套自己的Android源码吧,一方面方便自己对源码的理解,另一方面也方便自己验证自己的很多猜想。本文主要记录一下源码从下载到编译成功的一整套完整过程,以便以后自己在其他地方搭环境或者其他朋友搭建有借鉴的地方。在Windows上从零开始搭建环境我理解分为以下几个步骤:搭建Linux运行环境,详见第一章安装下载和编译需要的各种工具,详见第二章下载源码构建编译环境编译源码运行下面我就一个一个的记录所有的操作,尽量细致哈,哈哈原创 2021-02-25 11:28:54 · 272 阅读 · 0 评论 -
IPC机制(三)--ContentProvider、Socket和Binder池
1.ContentProviderContentProvider的底层实现是基于Binder,系统为我们做了深度的封装,让我们使用起来非常容易。// 第一步// 实现一个内容提供者,每个CURD方法中实现对数据的提供,可以是大多是从数据库加载数据public class BookProvider extends ContentProvider { private static final String AUTHORITY = "com.gacrnd.gcs.ipc.BookProvider原创 2021-02-25 11:28:14 · 312 阅读 · 0 评论 -
Ubuntu安装工具篇
1.安装VMware Tools1.1 选择安装/重新安装VMware tools1.2 VMware会自动下载最新的安装包(默认会在以下目录:/media/<你的用户名>/VMware Tools)1.3 进入安装包目录1.4 解压安装包(指令:tar -zxvf VMwareTools-10.2.5-8068393.tar.gz)如果报以下错误:chmod: changing permissions of ‘VMwareTools-10.2.5-8068393.tar.gz’:原创 2021-02-25 11:27:22 · 1390 阅读 · 0 评论 -
虚拟机安装Unbuntu 16.04
1.准备Ubuntu虚拟机因为我准备编译Android P的源码,所以至少需要安装16.04版本,如果编译Android M的源码,可以安装14.04的。这个就不多介绍了,直接上Ubuntu链接(墙裂不建议在官网下,没墙出去,贼慢!),各位看哪个信源快自己选择吧。官方下载地址(不推荐)https://www.ubuntu.com/download中科大源http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/阿里云开源镜像站http://mirror原创 2021-02-09 12:48:10 · 507 阅读 · 0 评论 -
Android-IPC机制(二)--Bundler、文件共享和Messenger
1.Bundle我们知道,Acitivity、Service和Receiver都是通过Bundle进行通信的,所有的Intent.putExtra()方法最终都会分装到Bundle中,而Bundle实现了Parcelable接口,所以可以很方便的在进程间进行通信。所以我们可以通过Intent启动进程B的一个Service组件(例如IntentService,JobService,JobIntentService),执行后台计算,计算完成之后,由于这个Service在进程B中,所以进程B可以直接处理计算结原创 2021-02-09 12:47:23 · 195 阅读 · 0 评论 -
dex2jar 报错 com.googlecode.d2j.DexException: not support version
1. 前言 在日常开发中,有时候想做一点羞羞的事情(ps: 学习一下别人的代码),但是一用dex2jar工具反编就报com.googlecode.d2j.DexException: not support version异常,在我高涨的学习热情上直接浇了一盆冷水。(后面有工具下载地址)2. 反编手顺: 反编其实很简单,先简单叙述一下:Step 1:将apk用任意解压工具直接解压(我用的zip)得到classes.dex,你可能会得到很多dex,不要紧,一个一个反编就行。Step 2 :原创 2021-01-20 10:58:05 · 5636 阅读 · 6 评论