展开

关键词

Android源码开发之添加删除系统应用

本文参考老罗的系统源代码情景分析中的1.5章节http:0xcc0xcd.compbooks978-7-121-18108-5c15.php想要在源码基础上添加一个应用整体来说只需要两步第一步,添加所需要的模块第二步,在系统的mk 文件(一般在deviceqcom***.mk)中添加对应模块先来说说第一步:添加模块模块下有四个文件夹? res文件夹:资源src文件夹:Java源文件Android文件:.mk文件AndroidManifest文件:清单配置文件res、src、清单配置文件无需多说,与平常的应用开发类似,就是多了一个mk文件 ,其内容如下LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13 android-support-v4 LOCAL_MODULE_TAGS := optional eng LOCAL_SRC_FILES := $(call all-subdir-java-files

644100

创建Android守护进程实例(底层服务)

前言Android底层服务,即运行在 linux 下的进程,是 Android 系统运行的基础,完成 Android 或者说计算机最基本的功能。 比如连接服务(包括 WIFI,BT 等等);比如 Android 的 adb 功能;比如存储监控等等。没有这些底层服务,上层也就没有了对应的功能。 本文所使用的 AOSP 是基于 Android 8.1。阅读文本需要对 Android 的架构、编译系统、AOSP工程和 SeAndroid 有基本认识。 另外,我们需要编译,那么就需要 mk 文件,创建一个 Android.mk 文件。这时,目录架构就是如下这个样子? 编写Android.mk我在代码中尽可能的注释清楚重要语句的作用,读者如果对 Android AOSP 编译不了解的,可以查阅更多 mk 语法的资料学习。

21031
  • 广告
    关闭

    腾讯云前端性能优化大赛

    首屏耗时优化比拼,赢千元大奖

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android NDK编程(一)---NDK介绍及环境搭建

    NDK全称为Native Development Kit,是Android的一个工具开发包,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。 NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。 ----在Android开发中,使用 NDK开发的需求正逐渐增大但很多人却搞不懂 JNI 与 NDK 到底是怎么回事今天,我将先介绍JNI 与 NDK & 之间的区别,手把手进行 NDK的使用教学,希望你们会喜欢 ----Android Studio NDK的环境配置 我用的Android Studio的版本为3.3.2?在上面的工具栏里打开SDK Manager?然后我们点击SDK Tools ? 新建NDK项目点击Start a new Android Studio project ?找到最后一项Native C++,然后再点击Next。

    49420

    Java自动化测试(app自动化环境搭建 31)

    open source test automation framework for use with native, hybrid and mobile web apps.It drives iOS, Android sdk环境SDK:软件开发套件adb:是android sdk的一个工具,用来连接安卓手机和PC端端桥梁在mac上安装:$ brew cask install android-platform-tools $ echo export PATH=$PATH:~.android-sdk-macosxplatform-tools >> ~.bash_profile$ source ~.bash_profile application-label-ky-KG:柠檬班application-label-lo-LA:柠檬班application-label-lt:柠檬班application-label-lv:柠檬班application-label-mk-MK fr fr-CA gl-ES gu-IN hi hr hu hy-AM in is-IS it iw ja ka-GE kk-KZ km-KH kn-IN ko ky-KG lo-LA lt lv mk-MK

    26020

    Android Studio中使用jni进行opencv开发的环境配置方法

    使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找不到教程,大多都是eclipse下使用mk文件的方法,找不到使用 其实找对了方法,用android studio配置环境要比eclipse简单很多,首先是预先准备的环境:1.Android studio,官网最新版,我用的是2.3.1;2.OpenCV4Android 等gradle build完毕,可以在project窗口的Android标签页下看到有External Build Files,下面是一个CMakeList.txt文件,这个是Android Studio jniLibs.srcDir() }}如此,我们就可以在cpp文件夹中添加C++类,并使用opencv库了,注意每添加一个cpp文件都要在CMakeList中add_library下添加一个源文件路径(和通过mk 【4.OpenCV4Android和jni的联动】我们依旧需要通过java层调用android api来获取摄像头数据,比较简便的方法是file- new- import module,选中OpenCV-android-sdksdkjava

    13020

    高通 NXP NFC(PN547PN548) 移植流程 android6.0

    一、驱动部分首先向NXP 的 fae要android 6.0 bring up的代码,如:NFC_NCIHALx_AR0F.4.3.0_M_NoSE结构目录如下: ?1. 0 = ; pinctrl-1 = ; qcom,nq-clkreq = ; clocks = ; clock-names = ref_clk; };};然后自己修改一下pinctrl的设置即可;二、Android Middleware 的移植根据 Android 版本的不同,获取到相应的 Middleware。 Android 5.1 获取的是 NFC_NCIHALx_ARF.3.3.0_L_FW08.01.26_FW10.01.14(Android5.1 无eSE) NFC_NCIHALx_ARF.3.5.0 Device 部分在平台的 mk 文件中添加,高通的是msm8909.mk:# nxp nfcPRODUCT_PACKAGES += libnfc-nci libnfc_nci_jni nfc_nci.pn54x.default

    1.9K21

    opencv集成opencv_contrib编译生成Android工程

    1.目标和步骤(1)环境搭建(1.1)ndk环境---走进AndroidStudio下的NDK 问题1:发现mk文件没有自动生成(如果不想手动写mk,可以做如下替换) 在项目的主目录下.build.gradle 相应的gradle配置的依赖版本要改成2.10.0 可以参考 http:android.jobbole.com83431,但是我不想改我的gradle版本 我的解决方法:手工执行命令经行编译,学习一下mk ndk-build 使用文档----(1.2)opencv环境 Android Studio集成OpenCV 这篇文章基本能解决大部分问题Android开发配置opencv环境超详细教程这篇文章绝对手把手教会 Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库 介绍了用CMake构建的方法,用的版本和库比较新 到了这一步,应该都能成功的配置出NDK环境并在上面使用opencv的接口 按照tzutalin那个哥们说法:(2)中build-opencv-for-android这个可以解决问题。

    36210

    AndroidStudio编写jni自动补全

    sdkndk-bundlesdk.dir=D:sdk distributionUrl=https:services.gradle.orgdistributionsgradle-5.1.1-all.zip 操作 编写.mk mk文件 建立连接 ? Link 然后build.gradle里会自动生成一段代码 android{... externalNativeBuild { ndkBuild { path file(srcmainjniAndroid.mk

    84630

    Android之NDK开发初体验

    它集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。 对于我们Android开发者来说,我们的app需要能在大多数手机上运行。所以要么我们所有arm类型都兼容,要么只兼容armeabi。 android-ndk-env-config.jpg以上是下边使用Android studio 进行NDK开发的基础,下边我们进入真正的开发环节。 applicationId ndk.tzx.com.ndkdemo minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName 1.0 ndk { 定义生成的mk Android NDK: The following directories were searched: Android NDK: make: Entering directory `homeimStudioProjectsNDKDemoappsrcmainjnimake

    66240

    Android NDK 构建开发环境并运行第一个NDK示例

    最近开始研究Android开发,由于Android SDK基本不熟悉,Java一知半解,1年前大概玩了一下,写了一个扫雷,一个连连看,对Android SDK的API不熟悉,最终放弃了继续学习。 第三步,安装配置Android NDK,这一步经过google的整合,到目前已经很简单了,直接下载解压就可以了,我下载的版本是android-ndk-r9-windows-x86.zip。 第一步,建立一个新的Android工程。     第二步,添加JNI支持,网上很多教程上都是比较繁琐的旧方案,需要手动的做很多事情,比如写mk文件等,现在NDK r9做这一步很简单,只需要在项目上点击右键,选择Android Tools->Add Native Support即可,然后Eclipse会自动为我们创建一个jni的工作目录,里面有一个cpp文件和一个mk文件,如下图。

    20910

    Android NDK Makefile相关与示例

    build.gradle设定jni以下是某模块的build.gradle文件 android { .... sourceSets.main { jni.srcDirs = 设定成so文件生成的目录 = modname编译得到libmodname.so文件加载库文件 static { System.loadLibrary(modname);}利用$(TARGET_ARCH_ABI)判断目标架构类别Android libcustom.a引用OpenCV模块假设已经下载好opencv-3.2.0SDK,Android.mk中引用 OPENCVROOT:=$(LOCAL_PATH)..........opencv-3.2.0-android-sdkOpenCV-android-sdkOPENCV_CAMERA_MODULES offOPENCV_INSTALL_MODULES:=onOPENCV_LIB_TYPE:=STATIC include ${OPENCVROOT}sdknativejniOpenCV.mk使用相对路径找到sdk,引入OpenCV的mk 文件Android NDK 通用 makefile 与相关配置Android.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE

    18120

    Android NDK 初步

    开发环境: win7 64,Android Studio 2.1需要工具:NDK,Cygwin使用adb查看手机CPU架构信息将手机通过USB连接到电脑,adb shell进入手机根目录,执行cat proccpuinfo 从github上获取android-ndk-android-mk,进入hello-jni工程。 sourceSets.main { jniLibs.srcDir srcmainlibs jni.srcDirs = Error 1出现了error: treating warnings as errors处理方法,在mk __android_log_print(ANDROID_LOG_ERROR , LOG_TAG, __VA_ARGS__) 调用LOGV(This is my log);Android Studio 在工程中新建android library,将CMakeLists.txt添加到模块中。

    17010

    Android系统编译流程详解(三)

    buildcoremain.mk $@ $MODULES_IN_PATHS fi}代码的最后会调用buildcoremain.mk文件.buildcoremain.mkmain.mk文件里定义了整个Android 的编译关系.它主要引入了下列几个重要的mk文件:其中定义了一个默认的droid,当我们在TOP目录下,敲Make实际上就等同于我们执行make droid。 仿着Android示例代码,在公司目录下创建products目录mkdir -p vendorhelloworldproducts4. 仿着Android示例代码,在products目录下创建两个mk文件touch vendorhelloworldproductsAndroidProduct.mk vendorhelloworldproductshelloworld.mk 在产品配置文件里添加最基本信息参考Android编译过程详解(二)

    34910

    jni和ndk详解

    NDK(Native Development Kit)“原生”也就是二进制android常用的开发方式是java封装的库,而这些库的底层实现是由CC++实现,如媒体,图形库等java调用这样实现就需要用 NDK是Google公司推出的帮助Android开发者通过CC++本地语言编写应用的开发包,包含了CC++的头文件、库文件、说明文档和示例 代码,我们可以理解为Windows Platform SDK一样 ,是纯CC++编写的,但是Android并不支持纯CC++编写的应用,同时NDK提供的库和函数功能很有限,仅仅处理些算法效率敏感的 问题,所以Android123推荐初学者学好Java后再学习JNI。 NDK集成了交叉编译器,并提供了相应的 mk 文件隔离 CPU 、平台、 ABI 等差异,开发人员只需要简单修改 mk 文件(指出 “ 哪些文件需要编译 ” 、 “ 编译特性要求 ” 等),就可以创建出 (乐观猜想,要视乎 Android 用户的数量) 2、NDK 将是Android平台支持C开发的开端。NDK提供了的开发工具集合,使开发人员可以便捷地开发、发布C组件。

    41290

    AI一分钟 | 谷歌:欧盟做出50亿美元罚款决定可能迫使Android收费;苹果发布内测版可打电话的HomePod

    ▌谷歌:欧盟做出 50 亿美元罚款决定可能迫使 Android 收费据美国科技新闻网站 The Verge 报道,欧盟做出的 50 亿美元罚款决定可能会对 Android 自由业务模式的未来产生一些影响 ,也可能迫使 Android 收费。 皮查伊关于 Android 业务模式“谨慎平衡”的微妙言论,被视为向消费者、手机制造商和欧盟委员会发出的警告。 (via.TechWeb)▌以色列推出搭载先进人工智能系统的 Merkava Mk 4 Barak 坦克据外媒 New Atlas 报道,以色列国防军( IDF )利用主战坦克的最新变种将人工智能带入装甲战斗中 Merkava Mk 4 Barak 被认为是第一款拥有先进人工智能和传感器系统的坦克,它可以完成许多日常任务,让士兵可以集中精力完成手头的任务。

    12420

    Android Studio2.2下NDK开发初试

    很久没更博了,这次来记录一下如何在Android Studio2.2中进行NDK开发吧,NDK开发嘛,就是将CC++的代码编译成so类库,供java调用(当然c调用java也是可以的),还记得以前没有IDE 的时候,需要在linux环境编译,非常麻烦,光是看完教程就不想弄了,但不得不说Android Studio是Android开发的神器,它将一切都弄的如此简单。 在用户变量中添加NDK_ROOT = SDK所在目录ndk-bundle然后再在path变量中添加%NDK_ROOT%第三步,选择工程文件的Project视图,在srcmain下创建jni目录,在这个目录里就放mk -8APP_CFLAGS += -DSTDC_HEADERS下一步,需要在app的build.gradle中说明ndk-build的mk文件在哪里,在android范围内添加externalNativeBuild ndkBuild { path file(srcmainjniAndroid.mk) } } 整个build.gradle文件如下:apply plugin: com.android.application android

    30550

    Android中JNI与NDK

    NDK实现步骤(1)配置 Android NDK环境 (2)创建 Android 项目,并与 NDK进行关联 (3)在 Android 项目中声明所需要调用的 Native方法 (4)使用 Android 需要交互的本地代码 实现在Android中声明的Native方法 (5)通过 ndk – bulid 命令编译产生.so库文件 (6)编译 Android Studio 工程,从而实现 Android 调用本地代码具体使用(重头戏)记得我以前写过一篇比较简单的文章 初步NDK开发 .SO文件生成与JIN调用 后来当我使用Android studio 3.5的时候,一切都变了。 默认的生成so的文件 NDK_LIBS_OUT=srcmainlibs,配置的我们想要生成的so文件所在的位置 APP_BUILD_SCRIPT=srcmainjniAndroid.mk,指定项目以这个mk 的方式 NDK_APPLOCATION_MK=srcmainjniApplication.mk指定项目以这个mk的方式 }(7)运用ndk-build生成相应的so文件先配置一下ndk-build 环境

    12510

    Android.mk引入第三方jar包和so库文件的方法

    -palette android-support-v4LOCAL_JAVA_LIBRARIES := telephony-commonLOCAL_JAVA_LIBRARIES += JSRConfig Android中,系统级的app使用到so库以后,都会去systemlib目录下去查找,所以你只需要把so库放置到systemlib目录下,然后在Android.mk中通过LOCAL_SHARED_LIBRARIES 我们可以通过adb把so库push到设备的systemlib目录下,可是,如果想要在android系统编译过程中,就实现so库拷贝到systemlib目录,那怎么办呢? 这用到了Android编译系统中的PRODUCT_COPY_FILES变量。 举例来说,打开devicexxxxx目录下一产品名命名的.mk文件,搜索PRODUCT_COPY_FILES变量就会看到很多该变量的用例,比如:# Audio configuration filePRODUCT_COPY_FILES

    30520

    Android NDk环境配置

    NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等) 环境主机:WIN10开发环境:Android Studio2.2.2首先要电脑安装了NDK环境,如果没有可以在studio安装? 新建hello-jni.c * * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License ;}# Copyright (C) 2009 The Android Open Source Project## Licensed under the Apache License, Version 2.0

    377100

    MUI框架中使用百度地图(全网独一份最详细的图文教程)

    应用名称:可以随便写,比较有代表性的;应用类型:因为是在安卓上开发的,所以使用Android SDK;启动服务:默认就好;发布版SHA1:BA:AD:09:3A:82:82:9F:B4:32:A7:B2 :AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58(DCloud公用证书SHA1)PackageName:MUI使用HB打包时的安卓包名Android 二、配置应用1、把Android SDK AK或者IOS SDK AK与MUI项目中的manifest.json配置文件中配置百度地图的SDK。复制刚才创建的AK ?? addComp.district + addComp.street + addComp.streetNumber; $(#address).val(mapAddress) }); 新建标注 var mk = new BMap.Marker(centerPoint); mk.disableDragging(); 不可拖拽 map.addOverlay(mk); } 四、测试效果因为我是使用的模拟器(MuMu

    62610

    扫码关注云+社区

    领取腾讯云代金券