首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

嗯,前面讲了那么多,是时候生成一个APK在真机上玩玩了. 今天的学习内容? 也只讲一个,如何打包生成安卓可安装的APK并精简大小....正文 我记得,之前在写安卓方面的文章的时候,有人就问过我.Xamarin.Android为什么打包出来这么大?随便一个HelloWord就20-30MB? 嗯..今天我们就来解决这个问题.....我们先从指定一个应用程序图标开始.. 1.指定应用程序图标 我们直接右键Android项目,属性.选择安卓清单.如下: ?...一般,在小型Xamarin.Android应用程序上使用ProGuard通常可以减少大约24%的大小 如果,在具有多个库依赖性的较大应用程序上使用ProGuard通常可以实现更大的尺寸缩小。...当启用ProGuard的检查,Xamarin.Android上运行所产生的APK ProGuard的工具。ProGuard配置文件在构建时由ProGuard生成和使用。

3K80

C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

例如(但不限于)iOS上的CoreMotion,PassKit和StoreKit; NFC和Android上的Google Play服务; 在Xamarin.Forms中创建UI界面有两种技术。...点击OK,我们就可以得到如下几个程序集 我们可以看到,第一个是可移植的,这里就是我们要编写代码的地方, 下面2个,一个安卓,一个IOS,如果你使用调试安卓,就设置他为启动项....这里有个需要注意的地方.TabbedPage所生成的页面,IOS和安卓会有所区别,如下: IOS的标签会在下面,安卓的根据谷歌给出APP应用程序建议,会在上面......国内很多App在这点上并没有遵循谷歌给的意见,都会统一放在下面. (在后续的章节里会讲,如何重写它,让安卓的也统一在下面)....写在最后 前面我写过一个系列是关于Xamarin.Android的,导致很多朋友都以为,Xamarin只能开发安卓  - -,我很方..

5.5K61
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 FFmpegAndroid 框架 )

    最近需要在 Android 中进行音视频数据转码 , 音频混音 , 音频编辑边裁 等操作 , 如果能在 Android 系统中执行 FFMPEG 指令 , 基本就可以晚上需求 ; 推荐一个 GitHub 上的项目...: https://github.com/WritingMinds/ffmpeg-android-java 该项目中 FFmpegAndroid 是 Android Library 核心依赖库 , 在自己的项目中...-0.3.2\FFmpegAndroid\assets\armeabi-v7a\ffmpeg 是 FFMPEG 可执行文件 , 可以在 ARM 架构的 Android 系统中执行 ; 在 ffmpeg-android-java...插件 , 然后添加了 google() 库支持 , 项目运行起来了 ; 参考 : 【错误记录】编译安卓项目报错 ( AndroidMavenPlugin 错误 ) 【错误记录】安卓编译错误 ( Could...= new ProgressDialog(this); progressDialog.setTitle(null); } // 2.

    1.9K20

    Android的Dialog弹出时隐藏导航栏效果,目前认为的最优解

    原本Android的ProgressDialog用法很简单,两三行代码就搞定了。但是,但是,但是,用在无人值守的自助终端上,总是把之前隐藏掉的导航栏和状态栏显示出来。这是不可接受的。...项目中用到一个Android的ProgressDialog显示操作的进度条,机器要求是屏蔽或隐藏掉导航栏和虚拟按键的显示。...但是试了好多方法,也参考了网上的很多做法,隐藏安卓底部导航栏之后 弹出dialog或者popupwindow后,导航栏会再次显示出来,虽然可以设置在dialog的onStart中再次隐藏导航栏,但是会出现一个导航栏显示出来又马上隐藏掉的一个效果...在Activity中,虽然在setContentView(R.layout.activity_main)之前调用隐藏状态栏的代码,但是一旦Activity跳转,就又出来了, 解决办法是在隐藏状态栏逻辑代码的下面...,加上一个状态栏变化的响应处理,在把它隐藏掉。

    4.8K20

    JavaScript在微信、微博、QQ、Safari唤起App的解决方案

    link的优势 在iOS9之前,唤起方式和现在安卓是一个的,都是使用scheme进行唤起,这种方式有个小问题,每次唤起,都会给个提示:是否打开xx应用,这样从体验上来讲,又让用户多一步操作。...1.在iOS下,微博是不支持打开应用宝的链接,所以我们需要引导用户使用Safari打开,像这样: 2.在android平台下,使用scheme这种方式是唤不起App的,但是有特例,同样是scheme,...大人点评和网易云音乐就可以唤起,有空大家可以自己试试,所以我们可以推断出,安卓平台下的微博,也有类似微信一样的白名单,在白名单内的,就可以使用scheme唤起,就像微信之于京东,京东在微信里面就是通过scheme...根据现象,我们可以推测出,在QQ的webview中,会对scheme的唤起方式做一些加载时间上的限制,经测试,大约在500ms,超过这个时间值,就会出现唤起失败的情况。...当然要一个一个的验证,但是在开发期间,没有必要改一行,在手机上测试一下,这样效率太低了,尤其是像一样,选了一个安卓4.4的手机,绝对可以磨练你的耐心。

    1.9K10

    Android开发笔记(六十四)网页加载与JS调用

    在4.0至4.2的Android系统上,Webview自己增加了searchBoxJavaBredge_,可能被黑客利用导致远程代码执行。...要想动态显示当前页面的加载百分比,可在WebChromeClient的onProgressChanged方法中设置进度对话框的当前进度。 3、显示js的提示对话框。...3、evaluateJavascript是Android4.4.2之后才引入的新方法,如果是4.4.2之前的Android版本,需要注意做兼容处理。...5、如果android与js存在嵌套调用(即A调用B,B内部又去调用A),那么在Android4.4.2之后务必要保证两个调用在同一个线程中,不然运行时会报错“java.lang.Throwable:...在4.0至4.2的Android系统上,Webview自己增加了searchBoxJavaBredge_,可能让黑客利用导致远程代码执行 wv_web.removeJavascriptInterface

    6.4K10

    惊喜,热心网友为Nodes小程序写的超详细使用指南

    点击 X 按钮即可退出Nodes小程序; 若想返回上一级界面,安卓用户可以使用手机底部的虚拟“返回键”(此按键一般是在最右边);iPhone用户可以直接点击 X 按钮左侧的 < 按钮。 4....等待几秒后,Nodes将会打开一个新的窗口显示图片文件。 如果你是安卓用户, 请点击右上角的“更多”按钮,然后选择 保存图片 。 如果你是iPhone用户, 请长按图片后选择保存图片 。...等待几秒后,Nodes将会打开一个新的窗口显示图片文件。 如果你是安卓用户,请点击右上角的“更多”按钮,然后选择发送给朋友 。...3.为什么在我的iPad上找不到小程序入口? 微信小程序目前只能在安卓平台和iPhone上使用。iPad上暂不支持微信小程序。 4....目前只有安卓用户才能将小程序添加到桌面。在小程序主界面点击右上角的“更多”按钮,选择添加到桌面 即可。 9.我要如何降低新增子主题时的失误率? 稍微增加长按主题的时间可以降低失误率。

    2.1K60

    Kotlin入门(20)几种常见的对话框

    这个提醒对话框便是App开发常见的AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...既然此路不通,那就试试别的办法呗,前面提到Spinner其实由两部分组成,一部分是直接显示在界面上的带箭头文本,另一部分是点击后弹出的选择对话框,所以能不能绕过Spinner,运用所见即所得的理念,干脆把下拉框分离成两个控件好了...,但是二者在功能使用上是没什么区别的,同样支持点击文本弹出选择框,也同样支持选中某项的回调。...当然,因为用到了Anko库的扩展函数,所以务必在代码头部加上一行导入语句: import org.jetbrains.anko.progressDialog 在水平进度对话框弹出之后,若想更新水平条的进度值...圆圈进度对话框 圆圈进度对话框仅仅展示转圈的动画效果,不支持实时刷新处理进度,自然在编码上比水平对话框会简化一些,可是用Java来显示圆圈进度对话框,依旧需要下列的五行代码:     ProgressDialog

    2.8K30

    Kotlin入门(20)几种常见的对话框

    这个提醒对话框便是App开发常见的AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...既然此路不通,那就试试别的办法呗,前面提到Spinner其实由两部分组成,一部分是直接显示在界面上的带箭头文本,另一部分是点击后弹出的选择对话框,所以能不能绕过Spinner,运用所见即所得的理念,干脆把下拉框分离成两个控件好了...,但是二者在功能使用上是没什么区别的,同样支持点击文本弹出选择框,也同样支持选中某项的回调。...当然,因为用到了Anko库的扩展函数,所以务必在代码头部加上一行导入语句: import org.jetbrains.anko.progressDialog 在水平进度对话框弹出之后,若想更新水平条的进度值...圆圈进度对话框 圆圈进度对话框仅仅展示转圈的动画效果,不支持实时刷新处理进度,自然在编码上比水平对话框会简化一些,可是用Java来显示圆圈进度对话框,依旧需要下列的五行代码: ProgressDialog

    1.6K10

    P1-Android基于MVP实现号码归属地查询

    零、前言 [1].最近在总结了安卓的知识点,现在来穿插一个小项目,算是对前面的一个小小总结 [2].本案例是以前在慕课网的学习的一个免费课程,代码看不懂的可以去看看:号码归属地查询实用工具 [...当然你也完全可以使用其他的上层网络框架 [5].相比课程,加入缓存机制,使用前面写过的缓存封装:详见:缓存文件封装 [6].使用前面的listview封装类:详见:ListView的封装 [7].Json的解析详见:Json在Android...public abstract class BaseICallActivity extends AppCompatActivity implements ICallView { private ProgressDialog...void success(String response); public abstract void error(String error); } 这是我第一次接触MVP模式,如有不恰...,欢迎指正 ---- 本文由张风捷特烈原创,转载请注明 更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:

    65120

    经验分享 | Burpsuite抓取非HTTP流量

    使用Burp对安卓应用进行渗透测试的过程中,有时候会遇到某些流量无法拦截的情况,这些流量可能不是HTTP协议的,或者是“比较特殊”的HTTP协议(以下统称非HTTP流量)。...在Kali上开启Burpsuite(我在Windows下测试NoPE Proxy插件无法抓包,没细查原因)。...测试对象:夜神模拟器6.0(Android版本4.4.2) + 四川移动掌上营业厅 安卓4.4之后的版本无法将所有流量通过配置的代理服务器传输。...手机端设置 安卓的设置中,修改手机的代理服务器,填写Burp监听IP和端口,DNS服务器填写之前设置的192.168.211.100。 ?...结语 对安卓手机APP测试遇到Burpsuite无法拦截的流量时,可以试试NoPE Proxy插件,说不定会有意想不到的收获。

    4.2K100

    安卓数据转移到iphone很慢_iphone数据迁移中断怎么继续

    准备工作 在安卓手机上下载安装“转移到 iOS”应用,打开安卓设备上的 WiFi,并将新 iOS 设备和安卓设备都插入电源。...操作步骤 在设置新 iOS 设备时,在“应用与数据”步骤轻点“从安卓设备转移数据”。...在安卓设备上,打开刚刚安装好的“转移到 iOS”应用并选择“继续”,阅读显示的条款和条件后点击“同意”以继续,然后选择“查找代码”屏幕右上角的“下一步”。...在 iOS 设备上,选择“从安卓设备转移数据”屏幕上的“继续”,然后等待十位或六位数字的配对代码出现,在安卓设备上输入代码后等待“传输数据”屏幕出现。...在安卓设备上,选择需要转移的内容后点击“下一步”,然后将两台设备放在一起不要进行其他任何操作,直到 iOS 设备上显示的载入条完成。

    5.6K40

    开发工具总结(7)之多年珍藏的Android开发必备网站和工具

    一、安卓开发 (1)android以及Android Studio开发网站(Android Studio、IDE、gradle、模拟器、sdk啥都可以找到) 这些都是可以直接打开的,无需访问外国网站...-安卓开发-Android开发-安卓-移动互联网门户 AndroidXY--专门收集Android开源组件,UI,工具集合的网站 DiyCode - 致力于构建开发工程师高端交流分享社区 Android...开源项目集合 首页 | @Get社区 IT大咖说 - 大咖干货,不再错过 page15-安卓PDF书籍下载(30页之后下载不了) Yalantis – 移动App开发公司....应用宝官网 百度手机助手 豌豆荚 安智官网 应用汇安卓市场 vivo开发者平台 OPPO开放平台 (7)自定义View博客 自定义View绘制“折线图” - danfengw的博客 - CSDN...(BadgeNumber) 桌面app图标的角标显示 leolin310148/ShortcutBadger xuyisheng/ShortcutHelper (14)使用安卓原生功能实现的一些效果

    10.3K30

    客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析

    随着Flash在浏览器上的节节败退,Air也悄无声息的消失在了大众的视野当中。...Apple Objective-C(或现在的Swift),跟Winforms一样,可以非常方便的调用操作系统底层API,劣势也一样,不跨平台、自定义控件比较复杂,可用资源太少。...JS和Native是如何实现互调的,这里先研究安卓的 Cordova-Android是通过addJavascriptInterface(Android Webview的API)和JS Prompt这两种方式来实现...这个loadUrl实际上就是加载webapp的启动页(默认是index.html)。 IOS具体参看《Cordova 工作原理(IOS篇)》,这里关于原理这是简介。...Xamarin.Android被编译成中间语言,Xamarin在APK安装包中会包含一个mono(跨平台的.NET运行环境),代码是在mono运行时和安卓本地的运行时上完成工作的。

    14.6K30
    领券