FrameWork基础案例解析(四)

文章目录

          • 单独拉取framework
          • 开机与开机动画横屏
          • Android.mk语法
          • 单独编译SDK
          • make 忽略warning
          • 单独修改和编译Camera2
          • 单独编译Launcher3
          • Android Studio 导入、修改、编译Settings
            • 导入
          • Android Studio 导入、修改、编译Launcher3
          • android 开机默认进入指定Launcher
          • 植入自己的apk到系统当中
          • 内置第三方输入法
          • Settings USB 调试默认打开
          • git代码管理
          • 快速修改系统app
          • 替换启动开机画
          • 打包服务应用Car
          • 模块打包到镜像中
          • 预装带so的apk
          • 搜集命令

单独拉取framework

repo sync platform/frameworks/base

开机与开机动画横屏

https://cczheng.blog.csdn.net/article/details/107951773

Android.mk语法

https://www.jianshu.com/p/703ef39dff3f

单独编译SDK

https://blog.csdn.net/starhosea/article/details/78663285
make sdk -j12 'ANDROID_COMPILE_WITH_JACK:=false'
在这里插入图片描述

make 忽略warning
在Makefile编译命令后面:
添加 -w(小写) 可以忽略warning;
添加 -Werror 可以将warning当作error,出现warning时停止编译;
添加 -Wall 可以输出所有
单独修改和编译Camera2

先找到包名

maqi@ubuntu:~/data/android-11.0.0_r9$ adb shell dumpsys window | grep  mCurrentFocusmCurrentFocus=Window{dc54f28 u0 com.android.camera2/com.android.camera.CameraLauncher}

targetActivity 找到 CameraActivity

  <activity-aliasandroid:name="com.android.camera.CameraLauncher"android:label="@string/app_name"android:targetActivity="com.android.camera.CameraActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity-alias>

加入一个标志


<com.android.camera.ui.MainActivityLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/activity_root_view"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@null"><include layout="@layout/camera" /><include layout="@layout/camera_filmstrip" /><com.android.camera.ui.ModeTransitionViewandroid:id="@+id/mode_transition_view"android:visibility="gone"android:layout_width="match_parent"android:layout_height="match_parent" /><TextViewandroid:id="@+id/txtOne"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="MAQI666"android:textColor="#EA5246"android:textStyle="bold|italic"android:background="#000000"android:textSize="18sp" /></com.android.camera.ui.MainActivityLayout>

编译成功
cd packages/apps/Camera2
mm -j12

* Connection #0 to host localhost left intact
[100% 10/10] Install: out/target/product/angler/data/app/Camera2Tests/Camera2Tests.apk
make: Leaving directory '/home/maqi/data/android-11.0.0_r9'
#### make completed successfully (05:40 (mm:ss)) ####

查看输出

maqi@ubuntu:~/data/android-11.0.0_r9/out/target/product/angler/system/app$ ls -l Camer*
total 5768
-rw-rw-r-- 1 maqi maqi 5894746 Nov 23 17:51 Camera2.apk
drwxrwxr-x 3 maqi maqi    4096 Nov 17 16:42 lib
drwxrwxr-x 3 maqi maqi    4096 Nov 17 16:45 oat 

烧入&&重启

 adb push Camera2.apk /system/app/Camera2/adb shell am restart

效果图
在这里插入图片描述

单独编译Launcher3

单独编译Launcher3

ninja: error: ‘out/host/linux-x86/framework/host-libprotobuf-java-nano.jar’, needed by

cd /package/apps/Launcher3
mma -j12
Android Studio 导入、修改、编译Settings

https://blog.csdn.net/qq_45815991/article/details/130278276

mm -j8 WITH_DEXPREOPT=false
在这里插入图片描述
make SettingsLib -j12 'ANDROID_COMPILE_WITH_JACK:=false'

https://note.qidong.name/2017/07/06/disable-jack-when-make-android/

在这里插入图片描述

导入

先学一下Git控制指令,玩转repo

repo sync packages/apps/Settings

Resolving deltas: 100% (33776/33776)
Resolving deltas: 100% (33776/33776), completed with 494 local objects.
Fetching:  0% (0/1) 12:43 | 1 job | 12:43 platform/packages/apps/Settings @ packages/apps/SettingsFetching: 100% (1/1), done in 16m4.670s
Updating files: 100% (3143/3143), done.
Checking out: 100% (1/1), done in 16.036s
repo sync has finished successfully.

方式二
maqi@ubuntu:~/data/source/.repo/manifests$ vim default.xml
在这里插入图片描述
git clone git://mirrors.ustc.edu.cn/aosp/platform/packages/apps/Settings

Android Studio 导入、修改、编译Launcher3

https://blog.csdn.net/u012932409/article/details/128772883

android 开机默认进入指定Launcher

https://blog.csdn.net/mj475002864/article/details/104759067

植入自己的apk到系统当中

https://blog.csdn.net/byhook/article/details/51900277

内置第三方输入法

https://www.jianshu.com/p/e782897c6ab8

Settings USB 调试默认打开
git代码管理

https://blog.csdn.net/qq_20330595/article/details/134042749?spm=1001.2014.3001.5502

快速修改系统app

https://blog.csdn.net/qq_20330595/article/details/146269135?spm=1001.2014.3001.5502

替换启动开机画

https://blog.csdn.net/qq_20330595/article/details/140856458
nanopc -t4 官方替换教程

打包服务应用Car

nothing…

模块打包到镜像中

make snod

预装带so的apk

预装带so的apk

搜集命令
模块make命令mmm 命令
initmake initmmm system/core/init
zygotmake app_processmmm frameworks/base/cmds/app_process
system_servermake servicesmmm frameworks/base/services
java framworkmake frameworkmmm frameworks/base
framework resmake framework-resmmm frameworks/base/core/res
framework jnimake libandroid_runtimemmm frameworks/base/core_jni
bindermake libbindermmm frameworks/base/libs/binder

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于vscode(GDB)调试ros2节点

一、环境准备 必备vscode插件 1&#xff09;Docker Docker - Visual Studio Marketplace 2&#xff09;Dev Containers Dev Containers - Visual Studio Marketplace 3&#xff09;GDB GDB Debug - Visual Studio Marketplace 二、进去docker镜像 1&#xff09;docker安…

基于springboot的考研成绩查询系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 这些年随着Internet的迅速发展&#xff0c;我们国家和世界都已经进入了互联网大数据时代&#xff0c;计算机网络已经成为了整个社会以及经济发展的巨大动能&#xff0c;考研成绩查询管理事务现在已经成为社会关注的重要内容&#xff0c;因此运用互联网技术来提高考研成绩…

C++:算术运算符

程序员Amin &#x1f648;作者简介&#xff1a;练习时长两年半&#xff0c;全栈up主 &#x1f649;个人主页&#xff1a;程序员Amin &#x1f64a; P   S : 点赞是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全…

PyQt6实例_A股日数据维护工具_使用

目录 前置&#xff1a; 下载预备更新的数据 使用工具更新 用工具下载未复权、前复权、权息数据 在PostgreSQL添加两个数据表 工具&视频 前置&#xff1a; 1 本系列将以 “PyQt6实例_A股日数据维护工具” 开头放置在“PyQt6实例”专栏 2 日数据可在“数据库”专栏&…

REST 方法

FUNCTION ZFM_INTERFACE_LOG. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" REFERENCE(IV_DSTART) TYPE EDI_UPDDAT *"---------------------------------------…

QT 中的元对象系统(五):QMetaObject::invokeMethod的使用和实现原理

目录 1.简介 2.原理概述 3.实现分析 3.1.通过方法名调用方法的实现分析 3.2.通过可调用对象调用方法的实现分析 4.使用场景 5.总结 1.简介 QMetaObject::invokeMethod 是 Qt 框架中的一个静态方法&#xff0c;用于在运行时调用对象的成员函数。这个方法提供了一种动态调…

Unity3D开发AI桌面精灵/宠物系列 【三】 语音识别 ASR 技术、语音转文本多平台 - 支持科大讯飞、百度等 C# 开发

Unity3D 交互式AI桌面宠物开发系列【三】ASR 语音识别 该系列主要介绍怎么制作AI桌面宠物的流程&#xff0c;我会从项目开始创建初期到最终可以和AI宠物进行交互为止&#xff0c;项目已经开发完成&#xff0c;我会仔细梳理一下流程&#xff0c;分步讲解。 这篇文章主要讲有关于…

Java 状态模式 详解

状态模式详解 一、状态模式概述 状态模式(State Pattern)是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态改变时改变它的行为&#xff0c;使对象看起来似乎修改了它的类。 核心特点 状态封装&#xff1a;将每个状态的行为封装到独立的类中状态转换&#xff1a…

Nginx 配置 HTTPS 与 WSS 完整指南

Nginx 配置 HTTPS 与 WSS 完整指南 本教程将手把手教你如何为网站配置 HTTPS 加密访问&#xff0c;并通过反向代理实现安全的 WebSocket&#xff08;WSS&#xff09;通信。以 https://www.zhegepai.cn 域名为例&#xff0c;完整流程约需 30 分钟完成。 一、前置准备 1.1 域名…

双向链表的理解

背景 代码中经常会出现双向链表&#xff0c;对于双向链表的插入和删除有对应的API函数接口&#xff0c;但直观的图表更容易理解&#xff0c;所以本文会对rt-thread内核代码中提供的双向链表的一些API函数操作进行绘图&#xff0c;方便后续随时查看。 代码块 rt-thread中提供…

大文件上传源码,支持单个大文件与多个大文件

大文件上传源码&#xff0c;支持单个大文件与多个大文件 Ⅰ 思路Ⅱ 具体代码前端--单个大文件前端--多个大文件前端接口后端 Ⅰ 思路 具体思路请参考我之前的文章&#xff0c;这里分享的是上传流程与源码 https://blog.csdn.net/sugerfle/article/details/130829022 Ⅱ 具体代码…

Unity中的静态合批使用整理

静态批处理是一种绘制调用批处理方法&#xff0c;它组合不移动的网格以减少绘制调用。它将组合的网格转换为世界空间&#xff0c;并为它们构建一个共享顶点和索引缓冲区。然后&#xff0c;对于可见网格&#xff0c;Unity 会执行一系列简单的绘制调用&#xff0c;每个调用之间几…

【机器学习中的基本术语:特征、样本、训练集、测试集、监督/无监督学习】

机器学习基本术语详解 1. 特征&#xff08;Feature&#xff09; 定义&#xff1a;数据的属性或变量&#xff0c;用于描述样本的某个方面。作用&#xff1a;模型通过学习特征与目标之间的关系进行预测。示例&#xff1a; 预测房价时&#xff0c;特征可以是 面积、地段、房龄。…

C++学习之路:指针基础

目录 指针介绍与基本用法双重指针函数指针空指针与野指针函数参数的指针传递最后 指针一般在C/C语言学习的后期接触&#xff0c;这样就导致指针给新手一种高深莫测、难以掌握的刻板印象。但实际上指针的使用很简单&#xff0c;并且还能够极大的提高程序的灵活性&#xff0c;帮助…

【服务日志链路追踪】

MDCInheritableThreadLocal和spring cloud sleuth 在微服务架构中&#xff0c;日志链路追踪&#xff08;Logback Distributed Tracing&#xff09; 是一个关键需求&#xff0c;主要用于跟踪请求在不同服务间的调用链路&#xff0c;便于排查问题。常见的实现方案有两种&#x…

Kafka+Zookeeper从docker部署到spring boot使用完整教程

文章目录 一、Kafka1.Kafka核心介绍&#xff1a;​核心架构​核心特性​典型应用 2.Kafka对 ZooKeeper 的依赖&#xff1a;3.去 ZooKeeper 的演进之路&#xff1a;注&#xff1a;&#xff08;本文采用ZooKeeper3.8 Kafka2.8.1&#xff09; 二、Zookeeper1.核心架构与特性2.典型…

JUC系列JMM学习之随笔

JUC: JUC 是 Java 并发编程的核心工具包,全称为 Java Util Concurrent,是 java.util.concurrent 包及其子包的简称。它提供了一套强大且高效的并发编程工具,用于简化多线程开发并提高性能。 CPU核心数和线程数的关系:1核处理1线程(同一时间单次) CPU内核结构: 工作内…

The Rust Programming Language 学习 (九)

泛型 每一个编程语言都有高效处理重复概念的工具。在 Rust 中其工具之一就是 泛型&#xff08;generics&#xff09;。泛型是具体类型或其他属性的抽象替代。我们可以表达泛型的属性&#xff0c;比如他们的行为或如何与其他泛型相关联&#xff0c;而不需要在编写和编译代码时知…

蓝桥杯 混乘数字

问题描述 混乘数字的定义如下&#xff1a; 对于一个正整数 n&#xff0c;如果存在正整数 a 和 b&#xff0c;使得&#xff1a; n a b且 a 与 b 的十进制数位中每个数字出现的次数之和&#xff0c;与 n 中对应数字出现的次数相同&#xff0c;则称 n 为混乘数字。 示例 对于…

CExercise04_1位运算符_2 定义一个函数判断给定的正整数是否为2的幂

题目&#xff1a; 给定一个正整数&#xff0c;请定义一个函数判断它是否为2的幂(1, 2, 4, 8, 16, …) 分析&#xff1a; &#xff1a; 代码 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdbool.h>/* 给定一个正整数&#xff0c;请定义一个函数…