Delphi XE10 精简 支持 Android 、 IOS 跨平台开发

Stella981
• 阅读 852

版本说明:

由于 XE5 时代 Delphi 安装体积急剧膨胀(完整安装接近 10G,程序文件、安装缓存超过 20G+),按照过去的方式打包,XE5 的 lite 体积 1.xG,接近 PE image 理论极限,而且当前 XE5 支持 x86、x64、osx、ios、android、等诸多平台功能,不好按照网友的口味进行裁剪(win32only、winonly、...)

经多方案权衡对比,决定 v8.x 开始,只使用 inno 对 Delphi 的主体功能进行封装(完整的 x86+其他支撑组件、注册表等),其他平台、功能的安装文件(x64、osx、ios、android)通过 7z 外挂的方式支持:安装时只需保证 lite exe 旁边有相关的 7z 文件(文件名不能变),在安装过程中即可选择、安装相应的功能(这意味着,如果只一个 exe、装出来就是 win32only,多一个 Ext.X64.7z,安装可选 x64 的支持,其他类推)

当前分为以下十个包:

  包名称    文件大小  作用

  Ext.3th.7z    69,394,470  第三方扩展
  Ext.Addons.7z    104,679,433  InterBase XE7、FastReport4 等
  Ext.Android.7z  3,483,048,158  Android 编译环境
  Ext.Help.7z    311,849,711  帮助文档
  Ext.IOS.7z    6,438,989,529  IOS 编译环境
  Ext.OSX.7z    762,214,182  OSX 编译环境
  Ext.Samples.7z  550,661,268  范例,其实直接用 svn 的也行
  Ext.SDK.7z    4,131,238,122  Android SDK/NDK 编译环境,当前包含 v23 的编译工具、虚机映像等
  Ext.Support.7z  132,810,751  Image、PAServer 等支持组件
  Ext.X64.7z    1,444,053,555  64 位编译环境

此外,安装程序支持:

1、保留一个第三方扩展的组件:Ext.3th.7z,当前只放了一个 PremiumStylePack,所有 7z 都会解压到 {app} 下
2、自动检测 Ext.SDK.7z 中的 SDK、NDK 版本进行设置,支持最新的 android-ndk-r9c-windows-x86+android-sdk_r24.3.3-windows
3、自动检测旁边的 jdk-7u*-windows-*.exe 进行安装,支持最新的 jdk-7u80-windows-i586.exe

----------

发布历史:

2015.09.09 - v12.0

1、根据 23.0.20618.2753 原版制作
2、集成 Unis 大侠的特别补丁

----------

已知问题:

关于 XP 下启动报错问题

Q1:说:bds.exe - 无法找到入口,无法定位程序输入点 InterlockedCompareExchange64 于动态链接库 KERNEL32.DLL 上?
A1:没法子,原版如此,这个 API 需要 Vista 或者 Windows Server 2003 的支持,说明 Seattle 开始 EMB 要抛弃 XP 了,其实只是 ios 编译相关的 dll 需要这个,如 dcciosxxx,甚至 mongoc 也需要,如果不需要 ios 编译,可以无视绕过,点击确定即可

Q2:启动报 External exception C06D007F 的错误?这是 Castalia 的问题,Seattle IDE 直接集成了 Castalia 的代码,XE8 还可以通过注册表关闭 Castalia,Seattle 不行了
A2:后来 Unis 大侠在补丁中做了修补:Under XP simulate missing InterlockedCompareExchange64 and add stub functions for missing: AddClipboardFormatListener, RemoveClipboardFormatListener (this why (ex)castalia crash).

Q3:经测试,在 XP SP3 之前的版本,依旧有问题:无法定位程序输入点 GetLogicalProcessorInformation 于动态链接库 KERNEL32.dll 上。
Q3:只能期待 Unis 大侠再次出手?

其他问题:

Q4:怎么 Android SDK 还需要更新、下载?
A4:原版如此;基于国情,直接集成了一个“够用的”(编译工具、虚机映像,但不包括文档、例子);也可以使用 swish 提供的 Android SDK 23.3.4:Delphi XE10  精简 支持 Android 、 IOS 跨平台开发 http://blog.qdac.cc/?p=2837;或者自己想办法红杏吧 ~

Q5:创建 Android Service 时,选择 Remote Service 时无法编译?
A5:据说这是 Delphi/C++ Builder 10 中 Android 服务的一处低级 Bug 修复,详情参考这里:Delphi XE10  精简 支持 Android 、 IOS 跨平台开发 http://blog.qdac.cc/?p=2839,EMB 的测试,无语啊,期待官方更新

Qn:...
An:...

----------

发布说明:

相对原始版本,这个 Lite 精简且只精简了原 RTM 的以下支持程序、第三方工具内容:

1、InterBase XE7、FastReport4 等,因为这些专版或者只有 dcu 没有完整源码,或者是原版功能精简版,推荐直接用原版吧
2、Samples 例子,可以通过 svn 获取:Delphi XE10  精简 支持 Android 、 IOS 跨平台开发 http://svn.code.sf.net/p/radstudiodemos/code/branches/RADStudio_Seattle/
3、当前的 PremiumStylePack 包括网上收集的:30233_custom_vcl_style_for_windows_10.ZIP、30258_custom_firemonkey_style_for_windows_10.ZIP、30354_firemonkey_premium_styles_pack_for_rad_studio_10_seattle.ZIP、30355_vcl_premium_styles_pack_for_rad_studio_10_seattle.ZIP
4、AQtimeRS.exe、CodeSite Express、CollabNetSubversion-client-1.7.5-1-Win32.exe、DevJET_DI_Setup_Express.exe、FBSE700.exe、RaveReportsSetup_Win.exe,当前官方 RTM 版本就是没有这些安装包的

其他:

1、PSDK 在当前官方帮助文档中已经没有了
2、XE7 开始,BDE 彻底消失了,需要独立的安装程序,只能通过官方注册用户下载
3、原版依赖 300多兆的 .NET Framework 3.5 sp1,我把它依赖的文件提取出来整合到安装程序中了,所以还是与以往 lite 一样,仅依赖 .NET Framework 2.0。
4、原版 Bds.exe 和 LicenseManager.exe 会访问网络,为避免不必要的流量,强烈建议直接 windows 防火墙屏蔽

其他的源码、支持库等都是绝对完整的。

----------

特别说明:

这个版本的来源于官方 Beta/RTM 正式试用版,版权归 Embarcadero 所有,请在下载后 24 小时内删除。
重新打包纯粹个人兴趣所致,希望能方便网友测试、交流。作为 Delphi 多年的 Fans,我们都希望 Delphi 能做得更好!
如果您觉得 Delphi 不错,请购买正版,更好的支持 Embarcadero 的发展!

----------

特别感谢:

1、crackerjack、dr、freecat、gateway、huayan889、kerlingen、sinner、unis、yuto 等大侠的特别补丁,感谢诸位我知道的不知道的的大虾们的辛勤劳动!
2、chineseswish、iny、nevergrief、snakejiao、star5、swish、tintin1943、ti9er、wang_80919、wuxiangyang 等等我知道的不知道的的网友们的热情测试!
3、andreas hausladen 等大虾们的无私贡献!

有文件 @ 360:

http://yunpan.cn/cm4iTri3havSL  访问密码 3a05

百度:

链接:Delphi XE10  精简 支持 Android 、 IOS 跨平台开发 http://pan.baidu.com/share/link?shareid=3557556884&uk=1060104307 ;密码:8o9s

当然,基于众所周知的原因,bd 需要先 Unzip.Me.First.zip ~
----------------------------------------------

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这