安卓开发
huangyimo
这个作者很懒,什么都没留下…
展开
-
android 相机预览编译 libyuv 处理 YUV 数据
下载源码(需翻墙),Android Studio 新建一个 NDK 项目,源码拷贝到 cpp 目录下。include 下面是头文件, source 下面是源码,其它文件基本用不到不用管。CMakeLists.txt 是 cmake 编译脚本, 现在android ndk 默认都是用 cmake 编译。// 格式转换(NV21、NV12、I420等格式互转)libyuv\include\libyuv\convert.hlibyuv\include\libyuv\convert_from.原创 2022-05-18 20:16:10 · 718 阅读 · 1 评论 -
javap -s 查看java方法签名
在Android NDK开发中,经常需要在C代码中回调JAVA中的方法这时就需要知道java方法的方法名和方法签名。使用javap -s 命令可以完成。查看系统java系统方法javap -s java.lang.String 查看自定义类:转到class(D:\jnitest\J1\ccalljava\build\intermediates\javac\debug\classes)目录下执行:javap -s com.example.ndksocket.Mai...原创 2021-02-01 17:25:26 · 445 阅读 · 0 评论 -
android studio中application module,library module,java module的区别
如题,我们知道,android stuido 中一个project中可以包含很多个module。我查了一下,主要是包含了android application module,android library module,java library module这三种module。我现在的理解是android application module以作为一个可以运行的应用,而android libr...转载 2019-05-18 16:24:47 · 1745 阅读 · 0 评论 -
jar包与aar包的区别
1. 概述在Android开发过程中,我们总是会引入第三方库或者资源等,而这些第三方库、或者资源文件有可能是jar文件,有可能是aar文件,那么这两种文件有什么区别呢?请继续往下边看。2. jar文件1>:jar文件就是 Java Archive File,java归档文件,是与平台无关的文件格式,将许多文件组合成一个压缩文件;2>:以 .zip格式为基础,不仅用于压缩和发布...转载 2019-05-18 15:17:32 · 4205 阅读 · 0 评论 -
AndroidStudio使用localMaven
简介有时候开发一个三方库,开发阶段并不希望提交到服务器maven,只想提供给本地的其他项目使用的时候,可以使用localMaven,将三方库提交到本地计算机仓库,然后其他项目将localMaven配置到仓库查找列表,这样,可以避免不断的往服务器提交三方库而需要不断的提升版本号的问题。发布三方库三方库build.gradle配置apply plugin: 'maven'apply...转载 2019-04-09 18:55:51 · 1464 阅读 · 0 评论 -
什么是Android NDK
1、NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Jav...转载 2019-04-07 21:43:29 · 858 阅读 · 0 评论 -
Java JNI实现原理初探
前言写这个是出于好奇。我们知道cpu只认得 “0101101” 类似这种符号, C、C++ 这些代码最终都得通过编译、汇编成二进制代码,cpu才能识别。而Java比C、C++又多了一层虚拟机,过程也复杂许多。Java代码经过编译成class文件、虚拟机装载等步骤最终在虚拟机中执行。class文件里面就是一个结构复杂的表,而最终告诉虚拟机怎么执行的就靠里面的字节码说明。Java虚拟机在执...转载 2019-03-31 16:29:02 · 766 阅读 · 0 评论 -
Gradle使用mavenLocal()以及自定义jar包缓存路径
最近在尝试使用gradle代替maven创建web项目在build.gradle文件中,使用mavenLocal()发现并不生效repositories { mavenLocal() //直接使用本地maven仓库 maven { url "http://maven.aliyun.com/nexus/content/groups/public" } maven...转载 2019-03-21 17:57:43 · 640 阅读 · 0 评论 -
Android开发如何使用productFlavors
1 创建flavor在module的build.gradle的defaultConfig同级目录中添加flavors集合productFlavors {}2 flavors集合中添加flavor添加flavorproductFlavors { flavor_test { applicationIdSuffix ".test" ...转载 2019-03-04 11:33:51 · 1688 阅读 · 0 评论 -
NDK配置及基本语法
NDK是Google为Android实现JNI调用而提供的工具原生库的构建方法包括旧版的ndk-build,及新版的CMake参考Google文档ndk-buildndk-build构建方法构建脚本:Android.mk语法与AOSP的Android.mk文件类似,其内定义若干个模块LOCAL_PATH := $(call my-dir) #文件所在目录include...转载 2019-03-04 11:09:44 · 509 阅读 · 0 评论 -
Android.mk 文件语法详解
0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义。Android.mk文件语法允许我们将Source打包成一个"modules"...转载 2018-10-08 10:46:24 · 1344 阅读 · 0 评论 -
Android:JNI 与 NDK到底是什么?(含实例教学)
前言在Android开发中,使用 NDK开发的需求正逐渐增大 但很多人却搞不懂 JNI 与 NDK 到底是怎么回事 今天,我将先介绍JNI 与 NDK & 之间的区别,手把手进行 NDK的使用教学,希望你们会喜欢 目录1. JNI介绍1.1 简介定义:Java Native Interface,即 Java本地接口 作用: 使得Java 与 本地其他类型语...转载 2018-09-29 14:28:36 · 324 阅读 · 0 评论 -
Android studio 使用Cmake完成C/C++ 的使用以及生成so文件
Android studio 2.2版本以后对C/C++的支持可以说很方便了,当然官方推荐使用Cmake完成对C/C++的支持2.2版本以上的同学新建一个项目就知道了,步骤如下:File -> New -> New Project,如下图:然后勾选Include C++ support,一直next ,最后Finish以后,项目就出现了,和一般的项目略有不同,其实只要多...转载 2018-09-29 18:13:40 · 3434 阅读 · 0 评论 -
Android NDK开发之从环境搭建到Demo级十步流
写在正文之前:几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒。其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文...,这几个月间断性的也是在学习中,学H5,学设计模式,以及NDK JNI开发等等。学习JNI主要是因为公司有一些COCOS游戏需要添加计费点,而又没有真正的游戏开发人员,这个重任就落到我身上了,然后就是各种虐,一虐到底,苦不...转载 2018-09-30 16:28:04 · 297 阅读 · 0 评论 -
NDK开发 从入门到放弃(一:基本流程入门了解)
一、前言● NDKNative Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。● JNIJava Native Interface(JNI)标准是java平台的一部分,JNI是Java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用C/C++代...转载 2018-11-10 11:48:00 · 153 阅读 · 0 评论 -
AndroidStudio2.2 Preview3中NDK开发之CMake和传统 JNI在目录结构和配置文件上的区别
自从AndroidStudio更新到2.2,就有了CMake和传统JNI两种开发NDK的方法,主要就是在目录结构和build.gradle上的区别,下面我们将分别介绍目录区别和build.gradle种配置的区别(提示:在第一次用CMake时,最好在新建项目时勾选Include C++ Support,这样这个项目的NDK开发就是CMake方式,这估计也是android以后主推的方式,建好项目,...转载 2018-11-10 12:52:33 · 173 阅读 · 0 评论 -
超级简单的Android Studio jni 实现(无需命令行)
1.配置Anroid Studio(这步是关键)使用[command+,] 打开Preferences,选择External Tools,点击加号框如下图: Paste_Image.png点击+号之后,打开Macros 配置宏命令界面,如下图:Paste_Image.pngsetting.pngjavah.pngndk-build.png...转载 2018-11-10 20:35:47 · 235 阅读 · 0 评论 -
Android Studio使用自定义的Android.mk文件编译ffmpegyuv-bgr
概述最近做项目的时候,领导安排一个任务,让测试一下,用ffmpeg中的yuv转bgr函数的速度。之前编译so库大部分都是用eclipse,本次博主花了两天时间,在Android studio上编译并运行,在此做一下记录。设置Android Studio ndk1、打开setings->Tools->External Toos 点击+号新建NDK分组及javah 与ndk-b...转载 2018-11-10 20:41:39 · 1265 阅读 · 0 评论 -
Android原生库构建的三种姿态
前言自Android Studio 2.2发布之后,AS开始支持CMake构建工具编译构建原生代码库,谷歌推荐使用CMake来构建新建的原生库,不过为了兼顾老项目,AS还是支持ndk-build构建,除此之外,谷歌还推出了实验性Gradle插件来构建原生库,至此AS工具支持3种方式来构建原生库。实验性Gradle插件由于依赖开发中的Gradle API,所以它是不稳定的,不过谷歌称Andro...转载 2018-11-10 22:03:14 · 419 阅读 · 0 评论 -
Android Studio目录结构分析
Android Studio工程目录我们这里以一个简单的HelloWorld工程来分析:1、.gradle和.idea 这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去手动编辑。2、app 项目中的代码、资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本都是在这个目录下进行的,待会儿还会对这个目录单...转载 2018-11-08 17:45:33 · 4999 阅读 · 0 评论 -
Android之SDK、NDK、JNI和so文件
1. SDK Android SDK(AndroidSoftware Development Kit),即Android软件开发工具包,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”,也就是说我们还可以采用C/C++语言。 Android SDK主...转载 2018-11-08 20:22:24 · 971 阅读 · 0 评论 -
gradle学习笔记(一) 构建工具介绍
前言:在android开发中平常所接触的gradle脚本,配置好了点击run按钮就能编译、打包、安装等等操作,编译出想要的apk,大大方便了开发过程。但是自己对gradle的了解和掌握仅仅只是够用,于是大量查资料开始学习gradle。这篇笔记主要解释了构建的概念、什么是构建工具,和gradle的基础概念,并清晰解释了学好gradle的必须基础:groovy 和 响应的DSL。1. 什么...转载 2018-11-17 18:55:55 · 151 阅读 · 0 评论 -
gradle学习笔记(二) Groovy基础
前言在 gradle学习笔记(一) 中说到 gradle学习基础: Groovy 和 DSL。所有这篇笔记就学习Groovy。先介绍groovy,然后开始学习步骤(当然主要学gradle用得到的地方)。简介: Groovy is a powerful, optionally typed and dynamic language, with static-typing and static...转载 2018-11-17 19:12:34 · 216 阅读 · 0 评论 -
Android Studio:基本UI界面设计 (详细)
一、 实验题目 基本UI界面设计二、 实现内容实现一个 Android 应用,界面呈现如下效果:三、 实验过程(1)标题 首先我们建立一个TextView控件来写标题。实验对标题的要求如下:1 标题字体大小 20sp(android:textSize="20sp")2 与顶部距离 20dp (与父容器顶部对齐后再设置与顶部距离20dp)3 居中 ...转载 2019-01-10 11:44:37 · 78963 阅读 · 9 评论 -
LOCAL_WHOLE_STATIC_LIBRARIES与LOCAL_STATIC_LIBRARIES的区别
在分析Jelly Bean Audio Subsystem的时候,发现HAL层的库audio_policy.xxx.so与其依赖的静态库libaudiopolicy_legacy.a都有audio_policy_hal.cpp这个源文件而且两者都定义了一个HMI。当调用者引用HMI的时候,调用的究竟是哪个呢?首先看audio_policy.xxx.so的Android.mk文件,在定义编...转载 2019-02-21 22:21:17 · 1311 阅读 · 0 评论 -
Android Studio 详解 build.gradle
参考:https://blog.csdn.net/jiang877864109/article/details/80415693AS中APP所有的配置尽在一个build.gradle文件中,打包的时候也是解析build.gralde文件来打包的,所以搞懂build.gradle文件是至关重要的,结构如下所示1、apply plugin用来指定用的是哪个插件,取值有: c...转载 2019-03-01 17:38:10 · 360 阅读 · 0 评论