android浅认识

1、Android.mk概览

Android.mk 文件位于项目 jni/ 目录的子目录中,用于向编译系统描述源文件和共享库。它实际上是编译系统解析一次或多次的微小 GNU makefile 片段。Android.mk 文件用于定义 Application.mk、编译系统和环境变量所未定义的项目范围设置。它还可替换特定模块的项目范围设置。

Android.mk 的语法支持将源文件分组为模块。模块是静态库、共享库或独立的可执行文件。您可在每个 Android.mk 文件中定义一个或多个模块,也可在多个模块中使用同一个源文件。编译系统只将共享库放入您的应用软件包。此外,静态库可生成共享库。

除了封装库之外,编译系统还可为您处理各种其他事项。例如,您无需在 Android.mk 文件中列出头文件或生成的文件之间的显式依赖关系。NDK 编译系统会自动计算这些关系。因此,您应该能够享受到未来 NDK 版本中新工具链/平台支持带来的益处,而无需处理 Android.mk 文件。

此文件的语法与随整个 Android 开源项目分发的 Android.mk 文件中使用的语法非常接近。虽然使用这些语法的编译系统实现并不相同,但通过有意将语法设计得相似,可使应用开发者更轻松地将源代码重复用于外部库。

基础知识 在详细了解语法之前,最好先了解 Android.mk 文件所含内容的基本信息。为此,本部分使用 Hello-JNI 示例中的 Android.mk 文件解释文件中每一行的作用。

Android.mk 文件必须先定义 LOCAL_PATH 变量:

LOCAL_PATH := $(call my-dir)

2、由于是临时需要在安卓系统运行c++代码,需要交叉编译

https://blog.csdn.net/pashanhu6402/article/details/96584229

后续再进行补偿学习。

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

include $(call all-makefiles-under,$(LOCAL_PATH))

# 模块编译
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := \
                                $(LOCAL_PATH) \
                                bionic \
                                bionic/libstdc++ \
                                external/stlport/stlport \

LOCAL_SRC_FILES :=  \
                                v4l2_camera.cpp
                                #check_usable_video.cpp
                                #study_ioctl.cpp

LOCAL_CFLAGS += -D__ANDROID__
LOCAL_SHARED_LIBRARIES := libstlport libutils liblog
LOCAL_MODULE    := libnetdetectlog
LOCAL_MODULE_TAGS := optional

include $(BUILD_EXECUTABLE)

3、查看Android版本命令

getprop "ro.build.version.release"
adb shell "getprop | grep version"

4、Android实用技巧之adb命令:getprop,setprop,watchprops命令的使用

getprop命令的作用就是从系统的各种配置文件中读取一些设备的信息。这些文件在我们的安卓设备中是可以找到的:

/init.rc
/default.prop
/system/build.prop
/data/property/

因此getprop显示的属性值是可以清除的,通过删除文件或者删除文件里面的内容,但是都是需要安卓设备重启生效。

5、Kconfig文件

当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig

Kconfig的作用:Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config

6、错误日志

untracked pid XXX exited

无法像linux那样查询进程: ps aux ps -ef 而是: ps

混乱的环境

/vendor/bin/sh /system/bin/sh /bin/bash

发现使用bash命令时,sh脚本第一行是注释行,不起作用。但是增加执行x权限之后,第一行就会起作用。

results matching ""

    No results matching ""