分类分类
大小:805.65 MB 更新:2020/12/07
类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll
Android NDK是一款多功能应用/系统开发工具箱,可以让用户实现在本地代码你的应用程序的部分,使用的语言,如C和C++;对于某些类型的应用程序,这可以帮助您重用以这些语言编写的代码库;本机开发套件(NDK)是一组工具,使用户可以在Android上使用C和C++代码,并提供可用于管理本机活动和访问物理设备组件(例如传感器和触摸输入)的平台库;适用于PC的Android NDK可能不适用于大多数只需要使用Java代码和框架API的新手Android程序员开发他们的应用,但是,NDK在需要执行以下一项或多项操作的情况下很有用:从设备中挤出额外的性能以实现低延迟或运行计算密集型应用程序,例如游戏或物理模拟,重用您自己或其他开发人员的C或C++库!
使用Android Studio 2.2及更高版本,您可以使用NDK将C和C ++代码编译到本机库中
并使用IDE的集成构建系统Gradle将其打包到APK中。
然后,您的Java代码可以通过Java本机接口(JNI)框架调用本机库中的函数。
Android Studio用来编译本机库的默认构建工具是CMake。
由于使用构建工具包的大量现有项目,因此Android Studio还支持ndk-build。
但是,如果要创建新的本机库,则应使用CMake。
要编译和调试应用程序的本机代码,您需要以下组件:
在Android原生开发套件(NDK):一组工具,可让您使用C和C ++代码的Android。
CMake:一个外部构建工具,可与Gradle一起使用来构建本机库。
如果仅计划使用ndk-build,则不需要此组件。
LLDB:Android Studio用来调试本机代码的调试器。
NDK是一个工具集,可让您使用本机代码语言(例如C和C ++)实现应用程序的各个部分。
对于某些类型的应用程序,这可能会有所帮助,因此您可以重复使用以这些语言编写的现有代码库
但是大多数应用程序不需要Android NDK。
在下载NDK之前,您应该了解NDK不会使大多数应用程序受益。
作为开发人员,您需要在其优点与缺点之间取得平衡。
值得注意的是,在Android上使用本机代码通常不会带来明显的性能提升,但始终会增加应用程序的复杂性。
通常,仅应在对应用程序至关重要的情况下使用NDK-绝对不要使用NDK,因为您只是喜欢使用C / C ++进行编程。
NDK的典型好选择是独立的,占用大量CPU的操作,这些操作不会分配太多内存,例如信号处理,物理模拟等。
在检查是否应使用本机代码进行开发时,请考虑您的要求,并查看Android框架API是否提供所需的功能。
Android支持库程序包是一组代码库,提供了向后兼容的Android框架API版本以及仅可通过库API使用的功能。
每个支持库都向后兼容特定的Android API级别。
这种设计意味着您的应用程序可以使用库的功能,并且仍与运行Android 1.6(API级别4)及更高版本的设备兼容。
对于应用程序开发人员而言,在其Android项目中包括支持库被视为最佳实践
这取决于您的应用程序所针对的平台版本范围以及所使用的API。
使用库提供的功能可以帮助您改善应用程序的外观,提高性能并扩大应用程序对更多用户的影响。
如果您使用Android 代码模板工具,则会注意到所有Android应用程序模板默认都包含一个或多个支持库。
每个支持库都针对基本的Android API级别,并且每个库都提供了不同的功能集。
为了有效地使用这些库,重要的是考虑要支持的功能,并了解每个库在Android API级别上支持的功能。
转到支持库设置主题以了解如何将支持库合并到您的应用程序中。
Android调试桥(adb)是一种多功能的命令行工具,可让您与仿真器实例或连接的Android设备进行通信。
它是一个客户端服务器程序,包含三个组件:
在您的开发计算机上运行的客户端。
您可以通过发出adb命令从Shell调用客户端。
其他Android工具(例如ADT插件和DDMS)也会创建adb客户端。
服务器,在开发计算机上作为后台进程运行。
服务器管理客户端与在模拟器或设备上运行的adb守护程序之间的通信。
守护程序,在每个仿真器或设备实例上作为后台进程运行。
您可以在中找到该adb工具/platform-tools/。
启动adb客户端时,客户端首先检查是否已在运行adb服务器进程。
如果没有,它将启动服务器进程。服务器启动时,它将绑定到本地TCP端口5037,并侦听从adb客户端发送的命令
所有adb客户端都使用端口5037与adb服务器进行通信。
然后,服务器建立与所有正在运行的仿真器/设备实例的连接。
它通过扫描5555到5585(模拟器/设备使用的范围)内的奇数端口来定位模拟器/设备实例。
服务器在其中找到adb守护程序的地方,将建立与该端口的连接。
请注意,每个仿真器/设备实例都获取一对顺序端口
用于控制台连接的偶数端口和用于adb连接的奇数端口。例如:
模拟器1,控制台:5554
模拟器1,adb:5555
模拟器2,控制台:5556
模拟器2,adb:5557
如图所示,在端口5555上连接到adb的仿真器实例与其控制台在端口5554上监听的实例相同。
服务器建立与所有仿真器实例的连接后,即可使用adb命令访问这些实例。
由于服务器管理与仿真器/设备实例的连接并处理来自多个adb客户端的命令
因此您可以从任何客户端(或脚本)控制任何仿真器/设备实例。
如果仅运行一个模拟器或仅连接一个设备,则默认情况下,adb命令会发送到该设备。
如果有多个模拟器运行和/或多个设备连接,你需要使用-d,-e或-s 选项来指定该命令应针对目标设备。
查询仿真器/设备实例
在发出adb命令之前,了解哪些模拟器/设备实例连接到adb服务器会很有帮助。
您可以使用以下devices命令生成连接的仿真器/设备的列表:
作为响应,adb为每个实例打印此状态信息:
序列号-由adb创建的字符串,用于通过其控制台端口号唯一地标识模拟器/设备实例。
序列号的格式为-。这是一个示例序列号:emulator-5554
状态-实例的连接状态可以是以下之一:
offline —实例未连接到adb或没有响应。
device—实例现在已连接到adb服务器。
请注意,此状态并不表示Android系统已完全启动并可以运行,因为该实例在系统仍在启动时会连接到adb。
但是,启动后,这是仿真器/设备实例的正常操作状态。
no device —没有连接仿真器/设备。
每个实例的输出格式如下:
[serialNumber] [州]
这是显示devices命令及其输出的示例:
adb设备,连接的设备列表
emulator-5554设备
emulator-5556设备
仿真器5558设备
将命令定向到特定的仿真器/设备实例
如果正在运行多个仿真器/设备实例,则在发出adb命令时必须指定目标实例。
为此,请使用-s命令中的选项。该-s选项的用法是:
adb -s <命令>您使用命令的adb分配的序列号指定命令的目标实例。
您可以使用该devices命令获取正在运行的仿真器/设备实例的序列号。例如:
adb -s emulator-5556安装helloWorld.apk
请注意,如果在多个设备可用时发出命令而未指定目标仿真器/设备实例,则adb会生成错误。
如果有多个可用的设备(硬件或仿真设备),但只有一个是仿真器,则只需使用该-e选项即可将命令发送到仿真器
同样,如果有多个设备,但仅连接了一个硬件设备,请使用该-d选项将命令发送到硬件设备。
安装应用程序
您可以使用adb从开发计算机复制应用程序并将其安装在模拟器/设备实例上。
为此,请使用install命令。使用该命令,必须指定要安装的.apk文件的路径:
亚行安装
请注意,如果您正在使用Eclipse IDE并安装了ADT插件
则无需直接使用adb(或aapt)将应用程序安装在模拟器/设备上。
相反,ADT插件将为您处理应用程序的打包和安装。
转发端口
您可以使用该forward命令来设置任意端口转发
将特定主机端口上的请求转发到仿真器/设备实例上的其他端口。
这是设置主机端口6100转发到仿真器/设备端口7100的方法:
亚行转发tcp:6100 tcp:7100
您还可以使用adb设置对命名的抽象UNIX域套接字的转发,如下所示:
adb转发tcp:6100 local:logd
将文件复制到仿真器/设备实例或从仿真器/设备实例复制文件
您可以使用adb命令pull并push在仿真器/设备实例之间来回复制文件。
与install仅将APK文件复制到特定位置的 命令不同
使用pull和push命令可以将任意目录和文件复制到模拟器/设备实例中的任何位置。
要复制一个文件或目录(及其子目录)从模拟器或设备,使用
adb pull <远程> <本地>
要将文件或目录(及其子目录)复制到仿真器或设备,请使用
adb push <本地> <远程>
在命令中,并指向开发计算机(本地)和仿真器/设备实例(远程)上目标文件/目录的路径。
例如:亚行推送foo.txt /sdcard/foo.txt
发出Shell命令
Adb提供了一个Unix shell,可用于在仿真器或连接的设备上运行各种命令。
命令二进制文件存储在仿真器或设备的文件系统中,位于/system/bin/...
最常见的两个命令工具是活动管理器(am)和 程序包管理器(pm)。
您可以使用该shell命令来发出命令,无论是否在仿真器/设备上输入adb远程外壳程序。
要发出单个命令而不输入远程shell,请使用如下shell命令:
亚行[-d | -e | -s ] shell
或在仿真器/设备上输入远程外壳,如下所示:
adb [-d | -e | -s ] shell
准备退出远程外壳程序时,请按CTRL + D或键入 exit。
使用活动管理器(上午)
在adb shell中,您可以使用活动管理器(am)工具发出命令以执行各种系统操作
例如启动活动,强制停止过程,广播意图,修改设备屏幕属性等等。在外壳中时,语法为:
您也可以直接从adb发出活动管理器命令,而无需输入远程shell。例如:
adb shell开始-android.intent.action.VIEW
重要更改:已更新include/android/*h,math.h适用于所有Android API级别(最高18)
包括添加的级别13、15、16和17。
添加了对API级别19的支持,包括Renderscript绑定。
-mhard-float在现有的armeabi-v7a ABI中增加了对它的支持。
从GNU编译器集合(GCC)4.8迁移到4.8.2,并添加了诊断颜色支持。
为了使诊断颜色,集合-fdiagnostics-color=auto
-fdiagnostics-color=always,或导出GCC_COLORS如下所示:
GCC_COLORS = '错误= 01; 31:警告= 01; 35:注释= 01; 36:插入符号= 01; 32:位置= 01:引号= 01'
添加了两个新示例来演示OpenGL ES 3.0功能:Teapot和MoreTeapots。
这些示例在具有Android 4.1(API级别16)及更高版本的设备上运行。
不建议使用的GCC 4.7和Clang 3.2支持,将在下一版本中删除。
重要的错误修复:
修复了ARM GCC 4.6thumb2无法生成16位相对跳转表的问题。
修复了GCC 4.8内部编译器错误(ICE) g++.dg/cpp0x/lambda/lambda-defarg3.C。
修复了Windows 32位*-gdb.exe可执行文件无法启动的问题。
修复了构建项目符号库时的GCC 4.8 ICE。错误消息如下:
内部编译器错误:verify_flow_info失败
修改了GDB / ARM构建,以跳过ARM.exidx序言代码中用于展开的数据
并添加了命令(set arm exidx-unwinding)以控制基于exidx的堆栈展开。
修复了Clang 3.3 MIPS编译器问题,其中HI和LO寄存器被错误地重用。
修复了MIPS 4.7 ICE在Windows中的问题dbx_reg_number。错误消息如下:
外部/ icu4c / i18n / decimfmt 。cpp :1322 :1 :内部编译器错误
在dbx_reg_number中,在dwarf2out 。c :10185
其他错误修复:
标头修复
修复了ARM,WCHAR_MIN并WCHAR_MAX已根据规范将其取消签名(X86 / MIPS版本已签名)。
定义_WCHAR_IS_ALWAYS_SIGNED以恢复旧的行为。
固定include/netinet/tcp.h为包含TCP_INFO状态枚举。
修复了使用c ++ 11模式时cdefs_elh.h宏_C_LABEL_STRING停止在GCC 4.8工具链中生成警告的问题。
除去不存在的功能imaxabs和imaxdiv从首标 inttypes.h。
解决了pthread_exit()返回值和的问题pthread_self()。
添加了缺少的mkdtemp()功能,该功能已存在于bionic header中stdlib.h。
修复samples/gles3jni了在Android API级别11上使用Clang构建问题。
修复了MCLinker,允许多次出现以下选项: -gc-sections和--eh-frame-hdr。
修复了MCLinker接受该--no-warn-mismatch选项的问题。
修改后的cpu-features选项不假定所有VFPv4设备都支持IDIV。
现在,此选项仅将IDIV添加到列入白名单的设备中,包括Nexus4。
修复android_native_app_glue.c了事件预调度操作中错误记录错误的问题。
修复了gabi++terminate和unexpected_handler上的所有操作都是线程安全的。
修复了Clang-integrated-as选项的几个问题,因此它可以通过ssax-instructions和的测试fenv。
修复了GCC 4.6 / 4.7 / 4.8编译器--eh-frame-hdr即使对于静态可执行文件也可以通过链接器选项的问题。
修复了中的多余撇号CPU-ARCH-ABIS.html。
修复了Windows上ndk-build输出中的多余引号。
固定锵3.3编译ARM的内置,原子操作,如 __atomic_fetch_add,__atomic_fetch_sub和__atomic_fetch_or。
修复了Clang 3.3 ICE的自定义问题vfprintf。
其他变化:
为所有GCC构建启用OpenMP。要使用此功能,请在构建设置中添加以下标志:
LOCAL_CFLAGS + = - fopenmp LOCAL_LDFLAGS + = - fopenmp
ld.mcld显着减小了大小(1.5MB对ld.bfd3.5MB和 ld.gold7.5MB),速度提高了约20%。
添加LOCAL_CONLYFLAGS并APP_CONLYFLAGS指定仅适用于C但不适用于C ++的选项。
现有的LOCAL_CFLAGS 和APP_CFLAGS也用于C ++编译(以省去两次指定大多数选项的麻烦)
因此-std=gnu99在警告的g ++版本中可能会失败,而在错误的clang ++版本中可能会失败。
添加了gabi++数组帮助器功能。
修改后的GCC构建,以便libgcc.a与之-funwind-tables一起构建所有文件
以使堆栈能够通过之前被阻止的点展开,例如__aeabi_idiv0。
在MIPS GCC4.6 / 4.7 / 4.8中增加了Ingenic MXU支持,并带有新-mmxu选项。
扩展的MIPS GCC4.6 / 4.7 / 4.8也-mldc1-sdc1可以控制ldxc1 / sdxc1
添加了疯狂的链接器。
固定bitmap-plasma为全屏绘制,而不是200x200像素区域。
通过创建指向相同文件的符号链接,将linux和darwin工具链的大小减少了25%。
Embarcadero RAD Studio(多功能应用程序开发工具) 编程工具177.22 MB12
详情猿编程客户端 编程工具173.32 MB4.16.0
详情猿编程 编程工具173.32 MB4.16.0
详情VSCodium(VScode二进制版本) 编程工具76.23 MBv1.57.1
详情aardio(桌面软件快速开发) 编程工具9.72 MBv35.69.2
详情一鹤快手(AAuto Studio) 编程工具9.72 MBv35.69.2
详情ILSpy(.Net反编译) 编程工具3.97 MBv8.0.0.7339 绿色
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情delphi2007完整 编程工具1198 MB附安装教程
详情SAPIEN PrimalScript2015 编程工具78.02 MB附带安装教程
详情Alchemy Catalyst可视化汉化工具 编程工具81.00 MBv13.1.240
详情Professional Tag Editor(通用标签编辑器) 编程工具25.6 MBv1.0.6.8
详情Coffeecup HTML Editor(html网页编辑器) 编程工具68.98 MBv15.4 特别版
详情JCreator Pro 编程工具9.65 MBv5.0.1 汉化
详情WebStorm 12中文 编程工具209.88 MB附带安装教程
详情MSWLogo(多功能项目开发与管理工具) 编程工具2.25 MBv6.5 免费版
详情JetBrains datagrip 2018.2.1中文-datagrip 2018.2.1 编程工具160.88 MB附注册码汉化包
详情易安卓5.0 编程工具202 MBv5.0 附破解补丁
详情keil uvision5 编程工具271.63 MB附带安装教程
详情CIMCO Edit V8中文 编程工具248 MB附安装教程
详情IntelliJ IDEA 2020.1(java集成开发环境) 编程工具643.0 MB附安装教程
详情redis desktop manager2020.1中文 编程工具32.52 MB附带安装教程
详情猿编程 编程工具173.32 MB4.16.0
详情信捷PLC编程工具软件 编程工具14.4 MBv3.5.2 官方版
详情源码编辑器 编程工具201.0 MBv3.4.3 官方版
详情Microsoft Visual C++ 编程工具226.00 MBv6.0 SP6 简体中文版
详情s7 200 smart编程软件 编程工具187 MBv2.2 官方中文版
详情TouchWin编辑工具(信捷触摸屏编程软件) 编程工具55.69 MBv2.D2c 官方版
详情易语言5.8完美 编程工具312 MB5.8.1 破解增强版
详情Scraino(少儿编程软件) 编程工具272.93 MBv0.3.0 官方版
详情vs2008中文 编程工具1495 MB附序列号
详情e盾网络验证源码 编程工具25.77 MBV45 官方版
详情codeblocks 编程工具95.21 MBv13.12 中文完整版(带GNW编译器
详情Android Studio(安卓开发环境) 编程工具983.0 MBv3.5.0.21 汉化版(附安装教程)
详情源码编辑器pc版 编程工具201.0 MBv3.4.3 官方版
详情CH341A编程器 编程工具1.06 MB1.30 绿色中文版
详情layuiAdmin pro(layui后台管理模板系统) 编程工具0.57 MBv1.1.0 单页版
详情海龟编辑器 编程工具71.5 MBv0.8.4 中文版
详情Ardublock中文版(Arduino图形化编程软件) 编程工具2.65 MB附带安装教程
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情富途牛牛 编程工具160.59 MBv11.8.9068 官方版
详情微信开发者工具 编程工具129.37 MBv1.05.2105170 官方版
详情UEStudio v18.0.0.18 简体中文绿色 编程工具19.00 MB
详情十六进制编辑器 WinHex 编程工具2.79 MBv20.2 SR-5
详情代码编辑器 Sublime Text 编程工具54.74 MBv4.0.0.4126
详情RJ TextEd(代码编辑器) 编程工具49.46 MBv15.31
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情影刀 编程工具306.37 MBv4.9.14
详情Kate(高级文本编辑器) 编程工具56.11 MBv21.12.1.1544
详情