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.pswp.cn/diannao/76624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76624.shtml
英文地址,請注明出處:http://en.pswp.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;請定義一個函數…