基于Xamarin开发多共享代码跨平台App的实现步骤咨询
Xamarin多应用共享代码与界面的实现方案
一、重构现有项目,抽离共享模块
- 将两款应用通用的业务逻辑、数据模型、工具类迁移至.NET Standard类库(Xamarin官方推荐,支持跨平台,兼容性更好)。
- 若使用Xamarin.Forms开发界面,把共享页面、自定义控件、全局样式抽成独立的Xamarin.Forms类库;如果之前是原生Android界面,建议改用Xamarin.Forms实现跨平台界面,彻底避免重复编写Android/iOS布局代码。
二、优化解决方案结构
放弃“每个应用独立解决方案”的思路,采用单一解决方案管理所有项目:
- 解决方案下包含:
- 共享.NET Standard类库(存放通用业务逻辑)
- 共享Xamarin.Forms类库(存放通用界面)
- 现有Android应用项目
- 新Android应用项目
- 后续待开发的两款iOS应用项目
这种结构下,跨项目引用、调试都更顺畅,无需单独编译DLL再手动引用。
三、解决共享代码的调试问题
如果坚持用独立解决方案+DLL引用的方式,按以下方法实现调试:
- 不要直接引用编译好的DLL文件,而是在新解决方案中添加对共享项目的项目引用,调试时可直接在共享代码中打断点,和调试本地代码完全一致。
- 若必须使用DLL,确保引用的是Debug版本DLL,同时将对应的
.pdb符号文件放在同一目录,调试器会自动加载符号,支持进入共享代码调试。
四、消除Android/iOS通用代码重复
- 用Xamarin.Forms编写跨平台界面:一套XAML代码自动生成Android、iOS原生界面,无需分别编写布局文件。
- 平台特定功能(如调用原生硬件API)通过依赖服务(Dependency Service)或自定义渲染器实现:通用逻辑放在共享类库,平台差异部分在各自项目中实现,通过接口统一调用,避免重复代码。
- 所有业务逻辑统一放在.NET Standard类库,Android和iOS项目直接调用,完全不需要重复编写。
五、新应用开发流程
- 在现有解决方案中新建Android(及后续iOS)应用项目,作为新APP的入口载体。
- 引用共享的.NET Standard类库和Xamarin.Forms类库。
- 新APP的专属功能(如独有页面、定制化逻辑)放在自身项目中,通用部分直接复用共享模块。
- 调试时直接启动新APP项目,断点可打在共享代码中,正常进行调试。
内容的提问来源于stack exchange,提问作者anand
相关产品推荐
相关产品推荐

