常用名词理解(APK,SDK,JDK,API,DLL)

apk

APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。

文件格式

格式定义

在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的 androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。安装的文件可能不是这个文件夹,而在androidrom中,系统的apk文件默认会放入这个文件夹,它们拥有着 root权限。

文件结构

1. META-INF\ (注:Jar文件中常可以看到);
2. res\ (注:存放资源文件的目录) ;
3. AndroidManifest.xml (注:程序全局配置文件) ;
4. classes.dex (注:Dalvik字节码);
5. resources.arsc (注:编译后的二进制资源文件)。

开发环境

Android是一个基于Java的开发环境,它是一种与广被接受的 Java极为类似,而且也比C++容易得多的开发语言,这是一种规范的移动开发环境。Google也在API文档的书写和样例的提供上做了很出色的工作。
获取SDK
下载并安装 android的SDK[软件开发套件],这套SDK主要包括有核心库文件,一个模拟器,开发工具和一些示范的样例文件。推荐使用Eclipse 和androideclipse 扩展。如果只是使用android,Eclipse IDE就已经足够了,但如果是第一次开发Java应用,建议下载完整的Java SE 开发工具 (JDK) 因为它包括签发应用程序所需要的工具。
应用架构
android应用架构很关键,如果不学习它,设计出来的游戏将是一种很难修复bug的产品。 需要了解应用程序、活动、Intents以及它们是如何互相联系交互的,Google在这儿提供了良好的 信息架构。真正重要的是,要理解为什么在设计的游戏中需要不止一个的活动进程以及如何设计一个用户体验良好的游戏。这些都应当配合到应用的生命周期中。
应用的生命周期
应用的生命周期是由AndroidOS操作系统进行管理的活动进程都将做为系统命令进行创建,正确处理这些事件对一个应用程序来说是极为重要的,因为终端用户不会知道什么是正确的。最好在开始设计游戏之前搞明白这些,因为这有助于节省调试时间以及避免代价高昂的重新设计。对大多数应用而言,默认设置即可开始工作,但对游戏而言,可能需要调整单态实例的信号为打开。在默认情况下,Android会新建一个活动实例进程,因为它认为这是比较合适的,而游戏,可能只希望有一个活动的实例进程,这有一点儿影响,它需要了解一些系统状态的管理。

apk反编译

编辑
apk反编译就是通过使用apk编译工具将apk文件中的 源文件和资源反编译出来,得到的源文件和资源文件可以进行处理后再进行编译,以达到个性化定制,汉化apk等目的。  
apk反编译工具
1、最典型的apk编译工具的核心是apktool,但是因为操作需要调用cmd命令,所以出现了很多具有可视化界面的各种编译工具,像easyapk,apkdb,doapk
2、dex2jar.jar,将apk中的classes.dex转化成Jar文件,再通过jd-gui工具反编译 jar文件。
apk编译方法
使用apkdb编译apk文件只需要在安装apkdb后直接右击反编译就可以将apk文件反编译出来
1、使用原生apktool工具,需要将apktool的两个文件释放到window目录下,在cmd中使用 apktool d apk文件名 命令来编译apk文件,此时命令行的执行目录与apk文件所在目录必须一致。
2、首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex。
Android SDK中包含了一个用于优化APK的新工具zipalign。它提高了优化后的Applications与Android系统的交互效率(俗话:“要致富先修路”,Android小组重新为Applications与Android系统之间搭建了一条高速公路),从而可以使整个系统的运行速度有了较大的提升。Android小组强烈建议开发者在发布新Apps之前使用zipalign优化工具,而且对于已经发布但不受限于系统版本的Apps,建议用优化后的APK替换现有的版本。 [2]  
在下面的内容中将从三个方面介绍zipalign:
1、zipalign如何优化
2、如何使用zipalign
3、使用zipalign的理由
根据官方文档的描述,Android系统中Application的数据都保存在它的APK文件中,同时可以被多个进程访问,安装的过程包括如下几个步骤: [2]  
1、Installer通过每个apk的manifest文件获取与当前应用程序相关联的 permissions信息。
2、Home application读取当前APK的Name和Icon等信息。  
3、System server将读取一些与Application运行相关信息,例如:获取和处理Application的 notifications请求等。
4、最后,APK所包含的内容不仅限于当前Application所使用,而且可以被其它的Application调用,提高系统资源的可复用性。  
zipalign优化的最根本目的是帮助操作系统更高效率的根据请求索引资源,将resource-handling code统一将Data structure alignment(数据结构对齐标准:DSA)限定为4-byte boundaries。如果第一次接触有关Data structurealignment的内容,强烈建议搜索更多与其相关的内容来充分理解这样做的最终目的,这也是理解zipalign工作原理的关键。 如果不采取对齐的标准,处理器无法准确和快速的在内存地址中定位相关资源。  
目前的系统中使用fallbackmechanism机制处理那些没有应用DSA标准的应用程序,这的确大大的方便了普通开发者无需关注繁琐的内存操作问题。但是相反,对于这样的应用程序将给普通用户带来一定的麻烦,不但影响程序的运行的效率,而且使系统的整体执行效率下降和占用大量不必要的内存资源,甚至消耗一定的电池资源(battery life)。  
在Android SDK中提供了三种应用Align操作的方法:
1、使用ADT
从ADT 0.9.3版本开始,可以通过export wizard自动对发布的applicationpackages执行align操作。设置方法:鼠标右键点击Project,然后选择”Android Tools” > “ExportSigned Application Package…”。或者可以直接在AndroidManifest.xml中设置。  
2、使用Ant:
对于API Level 大于等于4的Application Packages可以直接通过Ant build script来Align优化。但对于API Level小于4的情况,只能采取手动Align优化。 [2]  
默认下应用Ant build script运行Debug packages(API Level >= 4)时,将自动执行Align优化。  
针对Release packages。当使用Ant build script执行Align优化时,首先需要拥有足够的信息来Sign packages。当完成Signing之后, 才能执行Align优化。通过官方文档了解如何Sign Packages。  
3、手动执行Align优化:
利用tools文件夹下的zipalign工具。首先调出cmd命令行,然后执行:zipalign -v 4 source.apk androidres.apk。这个方法不受API Level的限制,可以对任何版本的APK执行Align优化。  
同时可以利用zipalign工具检查当前APK是否已经执行过Align优化。命令:zipalign -c -v 4 androidres.apk
再一次提醒开发者,立刻应用zipalign工具强制优化已经发布的application packages,并让你的用户使用最新的版本。

sdk

 

(软件开发工具包)

 
软件开发工具包(外语首字母缩写: SDK、外语全称: Software Development Kit)一般都是一些 软件工程师为特定的 软件包软件框架硬件平台、 操作系统等建立应用软件时的 开发工具的集合。  
软件开发工具包括广义上指 辅助开发某一类软件的相关文档、范例和工具的 集合
软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发  Windows 平台下的应用程序所使用的 SDK。它可以简单的为某个 程序设计语言提供 应用程序接口  API的一些文件,但也可能包括能与某种 嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
为了鼓励开发者使用其系统或者语言,许多 SDK 是 免费提供的。 软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为 营销手段。例如,营销公司会免费提供构件SDK 以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。
SDK 可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如产品供应商提供一个专有的 SDK 可能与自由软件开发抵触。 GPL 能使 SDK 与专有软件开发近乎不兼容。 LGPL 下的 SDK 则没有这个问题。

API

API(Application Programming Interface,应用编程 接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的  API而使操作系统去执行应用程序的 命令(动作)。其实早在 DOS时代就有 API 的概念,只不过那个时候的 API 是以中断调用的形式(INT 21h)提供的,在  DOS下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如将 AH置为 30h后调用 INT 21h就可以得到DOS 操作系统的版本号。而在  Windows 中,系统 API 是以 函数调用的方式提供的。同样是取得操作系统的版本号,在 Windows 中你所要做的就是调用 GetVersionEx()  函数
可以这么说, DOSAPI 是 “Thinking in 汇编语言” 的,而 Windows API 则是 “Thinking in 高级语言” 的。
DOS API是系统程序的一部分,他们与系统一同被载入内存并且可以通过 中断矢量表找到他们的入口,那么 什么是Windows API 呢?要说明白这个问题就不得不引入我们下面要介绍得这个概念—— DLL

DLL

DLL,即 Dynamic Link Library( 动态链接库)。在  Windows 环境下含有大量 . dll格式的文件,这些文件就是 动态链接库文件,其实也是一种 可执行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接执行,他们通常由 .exe 在执行时装入,内含有一些资源以及 可执行代码等。其实 Windows 的三大模块就是以DLL的形式提供的( Kernel32.dllUser32.dllGDI32.dll),里面就含有了 API函数的执行代码。为了使用 DLL 中的 API 函数, 必须要有 API 函数的声明(.h)和其 导入库(.lib),导入库可以先这样理解:导入库是为了在 DLL 中找到 API 的 入口点而使用的。
为了使用  API 函数,我们就要有跟 API 所对应的 .h 和 .lib 文件,而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。
SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写  Windows 应用程序的开发方式叫做 “SDK编程”。而API和 SDK 是开发Windows应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如VCL 和 MFC,虽然他们比起 “SDK 编程” 来有着更高的 抽象度,但这丝毫不妨碍我们在需要的时候随时直接调用  API 函数 。

与MOD的关系

游戏中就有很多SDK 工具包,可以开发 MOD和资料片。
2017年-Vungle 推出 SDK V5,增加10 个新的交互式应用内视频模板进一步增强消费者的广告体验 -新的模版将会植入Vungle最新的广告埋点技术。

jdk

 

(SunMicrosystems针对Java开发员的产品)

JDK是  Java 语言的 软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。




  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 最新的JDK API中文文档是Java开发工具包(JDK)的官方文档的中文翻译版本。JDK是用于开发和运行Java应用程序的软件包,它提供了一系列的开发工具和库。为了方便中国开发者使用和学习Java,一些社区和组织会将JDK官方文档翻译为中文,以便中文用户更好地理解和使用Java API。 最新的JDK API中文文档通常包括JDK中所有类、接口、方法和常量的详细说明和用法示例。它提供了关于如何使用不同的Java类和工具的详细指导,以及代码示例和最佳实践建议。这些文档可以帮助开发者了解每个API的功能和用途,学习如何正确使用它们,并通过查找和阅读文档解决问题和错误。 最新的JDK API中文文档还包括了每个API的版本和发布日期,以及有关Java平台和JDK版本兼容性的信息。这些信息可以帮助开发者在选择和使用API时注意到潜在的兼容性问题,并确保代码在不同的Java版本中正确运行。 最新JDK API中文文档的目的是帮助开发者更好地理解和使用Java API,提高开发效率和代码质量。通过准确详细的翻译,开发者可以更轻松地学习和掌握Java的各项功能,在开发过程中能够更快速、高效地解决问题,并编写出更可靠的代码。 ### 回答2: 最新的JDK API中文文档具有如下特点: 1.全面性:最新的JDK API中文文档包含了Java开发工具包(JDK)中所有的类、接口、方法以及相关的注释和示例代码。无论是核心的Java SE库还是扩展的Java EE库都被完整地纳入文档中,开发者无需再次查找其他来源的信息。 2.准确性:为了保证文档的准确性,最新的JDK API中文文档通过官方渠道发布,确保了其中的信息可以信赖。无论是方法的参数列表、返回值类型还是异常说明,都能得到精确和可靠的描述,开发者可以根据文档来正确地使用API。 3.易用性:最新的JDK API中文文档对于开发者来说非常易于使用。文档中的内容以清晰的结构组织,开发者可以轻松地找到所需的类和方法。此外,相关的示例代码对于理解和使用API也具有很大的帮助,开发者可以通过直接运行代码来验证API的效果。 4.即时性:随着Java技术的不断发展和升级,JDK API也会相应地进行更新。最新的JDK API中文文档能够及时反映这些变化,包含了最新版本的API内容。开发者可以准确地了解到哪些方法或类是最新添加的或已弃用的,以便及时进行调整。 总而言之,最新的JDK API中文文档是Java开发者不可或缺的参考资料,它提供了全面、准确、易用和及时的信息,帮助开发者更好地理解和使用JDK中的API,提升开发效率和质量。 ### 回答3: 最新的JDK API中文文档是指Java Development Kit(JDK)的最新版本(目前为JDK 15)的中文文档。 JDK是Java开发人员用于开发和运行Java应用程序的一组工具和库的集合。它包含了Java编程语言的运行环境(JRE)以及用于开发Java应用程序所必需的编译器、调试器和其他工具。 JDK API文档是Java开发人员的重要参考资料之一,它详细描述了JDK中所有可用的类、接口、方法和常量,并提供了每个成员的详细说明、用法示例和参数说明。它使开发者能够快速了解每个类和方法的功能和使用方法,以便更高效地开发Java应用程序。 最新的JDK API中文文档可以帮助中文阅读者更好地理解和使用JDK中的各种功能。它将JDK的所有功能都以中文的方式进行了解释和说明,使得开发者能够更轻松地查阅和理解文档内容。这对于那些英语不是很流利的开发者来说尤为重要。 总之,最新的JDK API中文文档是Java开发者必备的参考资料,它提供了详细的中文说明和示例,帮助开发者更好地使用JDK的各种功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值