Aprende contigo de por vidaXi, este es el programador de Android.
Artículos clásicos recomendados. Al leer este artículo, obtendrá los siguientes puntos de conocimiento:
1. Ver la rama donde se encuentra el proyecto
2. Cambiar a la rama de destino
3. Ver la rama actual
4. Compilar el código fuente de Android
5. Entorno de compilación de origen de Android
6. Proyectos de compilación requeridos para el almuerzo
7. Módulo de compilación único
8. Módulo de inserción verificar si la modificación entra en vigor
9. Referencias
1. Verifique la sucursal donde se encuentra el proyecto.
git branch -a
Representación: vea y enumere todas las ramas del proyecto actual
Ejemplos de proyectos de Qualcomm son los siguientes:
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ git branch -a
* linux_android_development
master
remotes/origin/A/B_update_linux_android_development
remotes/origin/HEAD -> origin/master
... ...
remotes/origin/secure_linux_android_development
remotes/origin/streamlined_code_engineering
Test@Test:/Test/Qualcomm_p/E7M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$
2. Cambie a la rama de destino
git checkout 分支名
Medios: Cambiar a una sucursal.
Ejemplos de proyectos de Qualcomm son los siguientes:git checkout linux_android_development
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ git branch -a
* linux_android_development
master
remotes/origin/A/B_update_linux_android_development
remotes/origin/HEAD -> origin/master
remotes/origin/cts_development_branch
... ...
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ git checkout linux_android_development
3. Ver la sucursal actual
git branch
Indica: Ver la rama actual
Ejemplos de proyectos de Qualcomm son los siguientes:
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ git branch
* linux_android_development
master
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$
4. Compile el código fuente de Android
Android
Compilación del código fuente, debido a que cada proyecto tiene scripts diferentes, los comandos de compilación a veces pueden ser diferentes.
El comando de compilación oficial de Google es el siguiente
1.source ./build/envsetup.sh
2.proyecto de almuerzo
3.make -j8
Los comandos de compilación del proyecto Qualcomm son los siguientes:
./buildall_userdebug.sh E5527M all
Cinco, entorno de compilación de Android fuente
Primero ingrese Android
el directorio raíz del código fuente y ejecútelo source ./build/envsetup.sh
.
De lo contrario source
, no podrá compilar el módulo por separado más adelante.
Ejemplos de proyectos de Qualcomm son los siguientes:
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ source ./build/envsetup.sh
including device/generic/car/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/generic/uml/vendorsetup.sh
including device/google/muskie/vendorsetup.sh
including device/google/taimen/vendorsetup.sh
including device/qcom/common/vendorsetup.sh
including device/qcom/qssi/vendorsetup.sh
including vendor/partner_gms/products/vendorsetup.sh
including vendor/qcom/opensource/core-utils/vendorsetup.sh
including vendor/qcom/proprietary/common/vendorsetup.sh
including vendor/qcom/proprietary/prebuilt_HY11/vendorsetup.sh
Created 9 symlinks out of 9 mapped links..
including sdk/bash_completion/adb.bash
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$
6. Proyectos de compilación necesarios para el almuerzo.
Ejecute lunch
el comando para ver la lista de todos los proyectos compilados y luego seleccione el proyecto compilado.
Ejemplos de proyectos de Qualcomm son los siguientes:
Primero, almuerce, luego seleccione la rama de compilación requerida
Test@Test:/Test/Qualcomm_p/E7M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
... ...
40. msm8937_64-userdebug
41. msm8937_64-user
... ...
65. taimenb2-userdebug
// 选择要编译的分支名
Which would you like? [aosp_arm-eng] msm8937_64-userdebug
device/qcom/msm8937_64/msm8937_64.mk:42: warning: "Build with 4.9 kernel"
... ...
OUT_DIR=out
============================================
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$
2. Sucursal de almuerzo directo
Por ejemplo, si necesitamos compilar msm8937_64-userdebug
un proyecto, podemos realizar el método más simple y lunch
organizar directamente la posición del proyecto, comolunch 40
Test@Test:/Test/Qualcomm_p/E7M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ lunch 40
device/qcom/msm8937_64/msm8937_64.mk:42: warning: "Build with 4.9 kernel"
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=9
TARGET_PRODUCT=msm8937_64
... ...
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=PKQ1.190601.001
OUT_DIR=out
============================================
Test@Test:/Test/Qualcomm_p/27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$
7. Módulo único
A menudo utilizamos mmm
y mm
compilamos módulos individuales. mmm
La mm
principal diferencia es la ubicación del directorio en el que se encuentra actualmente. Úselo
si actualmente se encuentra en el lugar donde desea compilar el módulo ; de lo contrario, use .(需要有android.mk文件,才可以进行)
mm
mmm
Ejemplos de proyectos de Qualcomm son los siguientes:
1. Ejemplos de uso de mmm (no en el directorio de FM en este momento)
Por ejemplo, la edición única FM
no está FM
en el directorio y debe ejecutarse.mmm vendor/qcom/opensource/commonsys/fm/fmapp2/
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ mmm vendor/qcom/opensource/commonsys/fm/fmapp2/
/Test/Qualcomm_p/E5527M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android/vendor/qcom/opensource/commonsys/fm/fmapp2/
Restriction Checker not present, skipping..
device/qcom/msm8937_64/msm8937_64.mk:42: warning: "Build with 4.9 kernel"
============================================
... ...
OUT_DIR=out
============================================
QSSI: not enabled for msm8937_64 target as vendor/qcom/proprietary/release/QSSI/QSSI_enforced_targets_list.txt was not found.
... ...
#### build completed successfully (7 seconds) ####
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$
Ejemplos de uso de 2. mm (en el directorio de FM)
Por ejemplo, si edita un solo archivo FM
en FM
el directorio, debe ejecutarmm
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android$ cd vendor/qcom/opensource/commonsys/fm/fmapp2/
Test@Test:/Test/Qualcomm_p/E27M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android/vendor/qcom/opensource/commonsys/fm/fmapp2$ mm
Restriction Checker not present, skipping..
device/qcom/msm8937_64/msm8937_64.mk:42: warning: "Build with 4.9 kernel"
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=9
... ...
OUT_DIR=out
============================================
QSSI: not enabled for msm8937_64 target as vendor/qcom/proprietary/release/QSSI/QSSI_enforced_targets_list.txt was not found.
ninja: no work to do.
... ...
build/make/core/base_rules.mk:412: warning: ignoring old commands for target `out/target/product/msm8937_64/vendor/lib64/hw/fingerprint.default.so'
ninja: no work to do.
#### build completed successfully (41 seconds) ####
Test@Test:/Test/Qualcomm_p/E7M_MSM8917_QM215_r26/LA.UM.7.6.2/LINUX/android/vendor/qcom/opensource/commonsys/fm/fmapp2$
8. El módulo push verifica si la modificación es efectiva.
1. Utilice la versión de depuración y monte el teléfono móvil.
adb shell getprop ro.build.type
Se utiliza principalmente para verificar la versión utilizada actualmente. Solo debug
la versión se puede usar para depurar y user
la versión no se puede depurar.
Ejemplos de proyectos de Qualcomm son los siguientes:
C:\Users\Administrator>adb shell getprop ro.build.type
userdebug
C:\Users\Administrator>adb root
C:\Users\Administrator>adb remount
remount succeeded
C:\Users\Administrator>
2. Copie el apk compilado de módulo único generado en el escritorio y envíelo al teléfono móvil.
adb push 本地文件 手机目录
adb push
Se utiliza principalmente para reemplazar el del teléfono móvil apk
y depurar para verificar si el editor único es efectivo.
El ejemplo de Qualcomm FM
es el siguiente:
C:\Users\Administrator>adb push C:\Users\Administrator\Desktop\FM2.apk /system/app/FM2
C:\Users\Administrator\Desktop\FM2.apk: 1 file pushed. 9.7 MB/s (861880 bytes in 0.085s)
C:\Users\Administrator>
3. Borre los datos de almacenamiento de push apk
adb shell pm clear 包名
Se utiliza para borrar los datos del nombre del paquete actual.
Por ejemplo:adb shell pm clear com.caf.fmradio
El ejemplo de Qualcomm FM apk
es el siguiente:
C:\Users\Administrator>adb shell dumpsys activity | findstr Run
Running activities (most recent first):
Run #0: ActivityRecord{3bc8d7d u0 com.caf.fmradio/.FMRadio t52}
Running activities (most recent first):
Run #0: ActivityRecord{89df584 u0 com.android.launcher3/com.android.searchlauncher.SearchLauncher t51}
C:\Users\Administrator>adb shell pm clear com.caf.fmradio
Success
C:\Users\Administrator>
referencias:
[Documentación de Tencent] Base de conocimientos del marco de Android
https://docs.qq.com/doc/DSXBmSG9VbEROUXF5
Recomendación amistosa:
Colección de información útil sobre el desarrollo de Android.
En este punto, este artículo ha terminado. El editor cree que el artículo es una reimpresión de Internet y es excelente. Puede hacer clic para leer el artículo original y apoyar al autor original. Si hay alguna infracción, comuníquese con el editor para eliminarlo. Sus sugerencias y correcciones son bienvenidas. . Esperamos su atención y gracias por leer, ¡gracias!
¡Haz clic para leer el artículo original y darle me gusta al jefe!