一直在用腾讯云bugly的全量更新 但是最近突然发现再发布新的更新策略时 出问题了 策略编辑页面会一直卡在:安装包正在同步 一直转圈 没办法正常进行策略发布 尝试了好多次 都不行 搜索后发现 有很多人都是这样的情况
这几天,相信iOS开发者都频繁的被 XcodeGhost 刷屏了!互联网上相关的各种分析及猜测都层出不穷,事件愈演愈烈,涉事 App 名单也在不断增加,不乏知名App。 也许感受到了压力,今日凌晨,自称XcodeGhost的作者发布了致歉声明,声称XcodeGhost源于自己的试验,没有任何威胁性行为,并公开其源码。 然而,这真的只是一次试验么?试验性的东西至于始作俑者煞费苦心的到处上传,传播注入过的 Xcode 么? 作为一名程序猿,我们还是要保持良好的习惯,安全意识绝对不能少。开发工具一定要从官方渠道获
我们都知道,在app开发完成发版的时候,会上传到各个应用市场,来增加用户量,但是这些市场往往会有一个审核的周期,等审核通过之后才会推送给用户来下载,并且,当我们某个版本出现严重bug,或者新增了一个特色功能的时候,我们会希望用户很快就能更新我们最新的app,这时候就要用到 应用检测更新了。 通常,实现应用更新一般我们有两种方法。 第一种 自己搭建后台检测是否有更新 这种方法通常要求客户端启动后,在某个时机,利用当前版本的某些信息(版本号,渠道号等)来请求服务器,服务器处理后返回是否需要升级等信息。
接上篇->三步走起 提升 iOS 审核通过率 上篇 根据2015年的数据统计情况,并结合《苹果应用商店审核指南》,互娱 iOS 预审团队通过细分将预审工作划为3大模块:客户端资源检查、应用内容检查和提审资源检查。 在上一篇文章中,重点为大家介绍了客户端资源检查的内容,今天我们要为大家介绍的是关于应用内容检查和提审资源检查的部分。 第二步:应用内容篇 对应用的内容进行审查,是确认无涉及色情、庸俗、暴力、枪支等内容;并对公告文字等筛查,无苹果禁止的字眼等;应用内不包含 CDKey 兑换,好友邀请及炫耀等苹果最新
导语 这里是Android性能优化典范第6季的课程学习笔记,从被@知会到有连载更新,这篇学习笔记就一直被惦记着,现在学习记录分享一下,请多多指教包涵!这次一共才6个小段落,涉及的内容主要有:程序启动时间性能优化的三个方面:优化activity的创建过程,优化application对象的启动过程,正确使用启动显屏达到优化程序启动性能的目的。另外还介绍了减少安装包大小的checklist以及如何使用VectorDrawable来减少安装包的大小。 1. App Launch time 101 提高程序的启动速度
导语 早在去年10月份,facebook就发布了介绍redex的文章,这个据说可以直接对apk做处理,既提高启动性能,又可减少安装包的利器让安卓开发者们都心动不已。直到今年4月,redex终于开源了,我们也第一时间对redex做了研究(有观众可能要说我骗人,这都11月了怎么还第一时间呢?好把这个总结是拖了很久才写),虽然由于坑多,最终没有接入到项目构建中,但受Interdex启发,在应用冷启动速度优化方面有了新的收获。 PS:本篇提到的冷启动速度优化,不包括Android 5.0及以上系统 一、redex的
Bugly热更新采用Tinker开源方案,官方文档如下: Bugly Android热更新使用指南 Bugly Android热更新详解
圣诞节到啦,精神哥披着红大衣,戴上红高帽,想着偷偷爬入各位办公楼的烟囱,给大家的座位上留下一包鸡爪作为圣诞礼物! 奈何精神哥太胖,肚子太大爬不进烟囱了,想着大家肯定也在加班没法做到偷偷,就单方面决定还是给大家送文章吧! 话不多说,下来精神哥给大家分享的第二个Crash是“java.lang.NoSuchMethodError”。 一、java.lang.NoSuchMethodError 基本介绍 全名java.lang.NoSuchMethodError官方解释Thrown if an applicat
一、背景 就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败。这一问题意味着项目将不能在 Android 3.0以下的手机上安装使用,对项目的发布有比较大的影响,所以必须尽快解决。 INSTAL L_FAILED_DEXOPT导致无法安装的问题,从根本上来说,可能是两个原因造成的: (1) 单个 dex 文件方法总数65K 的限制。 (2) Dexopt 的 LinearAlloc 限制。 当 Android 系统安装一
最近精神哥接到多个小伙伴的投诉,说无法看懂Bugly崩溃克星页面上显示的堆栈信息!精神哥赶紧把正研究的Top Crash崩溃和心爱的鸡爪放下,开始着手跟进。经分析发现,大家误会Bugly崩溃克星了,这一切都是Proguard搞的鬼! 下面请容精神哥一一道来! 问题描述 先看看图一中显示的正常堆栈内容,正常堆栈中每一个调用帧(Frame),都会有3个元素组成: 类名(Full Class Name,红线标注); 方法名(Method,蓝线标注); 源文件及行号(SourceFile:LineNum,绿线标注
前言 上一篇文章已经给大家详细介绍了如何通过Gradle将我们开发好的Library上传到JCenter,基本上就是一系列配置,最后通过Gradle脚本将Library打包成jar或者aar包上传到maven仓库,然后添加到JCenter仓库进行审核,通过之后就能让开发者在gradle脚本进行引用。本篇博客还是基于Gradle,但稍微进阶一下,将跟大家分享一下如何开发一个Gradle插件,这个插件是我为Bugly开发的自动上传apk文件的Gradle插件,目前已经开源,有兴趣的朋友可以到github看看:h
上一篇文章说道tinker的热更新,可是少了点补丁包的管理,这一篇文章介绍的bugly就是增强版的,更加方便你集成tinker和包括了补丁包的后台管理。 为什么使用 Bugly 热更新?
Bugly出热更新SDK了? 没错,Bugly也出热更新SDK啦,2016.11.25号,我们Bugly也上线了Android版的热更新SDK,大家都知道这一年来热更新被无数次提起,各大厂自主研发的热更新方案层出不穷,下面就列举一些大家比较熟悉的一些热更新方案: 微信开源:Tinker 大众点评:Nuwa 阿里巴巴:Dexposed 阿里巴巴:AndFix 美团:Robust 各个方案的优劣性笔者就不在这里做过多讨论了,总的一句话没有最好的,只有最适合自己的。 我们Bugly也是出于高可用性的考虑,Tink
导语 xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,凭借其出色的性能,易用性,扩展性而广受好评。 而就在前天,腾讯宣布xLua开源到github上,引起了游戏开发圈的轰动,今天精神哥就来给大家介绍——手游热更新方案 xLua。 xLua项目1月3日起正式对外开源 官方开源地址: https://github.com/Tencent/xlua xLua的几项突破 xLua在功能、性能、易用性都有不少突破,这几方面分别最具代表性的是: Unity3D全平
Gradle使用productFlavors打渠道包的痛 有很多同学可能会采用配置productFlavors来打渠道包,主要是它是原生支持,方便开发者输出不同定制版本的apk,举个例子: android { ... defaultConfig { minSdkVersion 8 versionCode 10 } productFlavors { flavor1 { packageName "com
前言 对于大多数大三学生来说,这个暑假是人生最后一个暑假。对于IT专业的学生来说,开学后就要面对各大IT企业的秋招,很多人会成为从0开始的Android实习生。在Android初学之路上,每个Android实习生都会遇到各式各样的瓶颈。 克服瓶颈要从克服自己对一切瓶颈的偏见做起,把逃避瓶颈的行为变成享受瓶颈带来的乐趣的过程。要知道喜力比国产啤酒贵好多的一条重要原因就在于喜力的瓶颈:你现在去买一瓶玻璃瓶装喜力,用手握住瓶颈,大拇指按住那颗星,然后用你最熟悉的动作撸瓶颈,你会喜
时隔三月,如隔三秋。越过层层文档,穿过条条代码,小萝莉终于又和大家见面了!用户朋友们,我想死你们了!当然萝莉来此,并不是来和大家聊春晚的,我们的主题依旧是iOS。 Apple秋季产品发布会刚刚结束,iOS 9 GM版本也正式发布了。新的iPhone设备即将开售,iOS 9系统升级也将会在下周开始陆续进行推送。 在这之前,我们还可以为自己的App兼容适配做点什么,或者说,我们的App真的已经兼容适配好iOS 9系统了吗? 从7月份开始到现在,Apple已发布5个iOS 9的Beta版本,相信开发者在这段时间也
做移动开发最麻烦的就是收集用户在使用过程中的程序的异常崩溃日志,因为这个异常崩溃是无征兆的在毫无防备随时的出现,所以有时候真是丈二金刚(摸不着头脑);这个还是其次要命的是用户端程序的每次迭代和版本的分布又不容易推送和获取。
最近在处理Bugly问题的时候顺便解决了下符号表上传的问题,使用最新的上传工具包,也是顺便整理了下可以使用的脚本添加到了项目中,把这个过程中遇到的问题总结出来,脚本也会给出来,实测是没有问题的,希望可以帮助到有需要的小伙伴。首先关于什么是符号表,符号表是用来干什么的,在哪里找自己的符号表这些问题我们不在这里说,Bugly文档里面说的很详细也很清楚,需要的小伙伴直接去看官方文档。
最近公司项目中需要集成热更新功能,由于刚开始接入的时候踩了很多坑,所以现在记录一下集成的过程.
Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。
58 同城主 APP 的单架构的 bugly 符号表已经达到了 53MB(解压后 550MB+)。
下面是《Android Studio开发实战 从零基础到App上线》(第一版)一书用到的工具和代码资源: 1、本书使用的Android Studio版本为2.2.3,因为Android官网现在不提供该版本的下载,所以博主把该版本的64位安装包上传到了百度网盘,点击https://pan.baidu.com/s/1o80opRG进入下载页面。 如需32位的Android Studio安装包,可前往Android官网页面下载。 2、本书使用的Android NDK版本为r13b,64位NDK安装包的下载页面为https://pan.baidu.com/s/1qXZLMsG 如需32位的NDK安装包,可前往Android官网页面下载。 3、本书提供所有示例源码的demo工程下载,旧版源码(适配Android Studio 2.2)的下载页面为https://pan.baidu.com/s/1c1LXlKG,新版源码(适配Android Studio 3.2)的下载页面为https://pan.baidu.com/s/14NE2DD-frXxuDXUAlTfRaw,最新的源码可访问我的github获取,github地址是https://github.com/aqi00/android2。 4、本书提供配套的ppt课件下载,课件的下载页面为https://pan.baidu.com/s/1kMcHvS4X8u5qdrBD6eUVIg。 源码与各章的对应关系表见下图:
前言 前几天有个用户在我们论坛反馈一个问题,说他们的app在Android N机型中升级失败了,看了一下反馈的问题,基本确定了是因为Android N收敛了访问共享文件权限,即在Android N中使用intent不允许跨package共享file://URI,如果在工程中设置targetSDK版本为Android N并且有通过Intent传递文件它会抛出FileUriExposedException异常。发现这个问题之后呢,我自然尝试复现一下,由于没有Android 7.0的真机,我就在优测线上租用了一个
众所周知,软件项目的交付是一个复杂的过程,任何原因都有可能导致交付的失败。很多时候经常遇到的一个现象是,应用在开发测试时没有任何异常,但一旦上线就问题频出。出现这些异常,可能是因为不充分的机型适配或者用户糟糕的网络状况造成的,也可能是Flutter框架自身缺陷造成的,甚至是操作系统底层的问题。
早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种!
今日北京凌晨时间 4 点 37 分,GitHub 在官方 Twitter 上正式宣布,推出自家的软件包托管服务 - GitHub Package Registry。
继插件化后,热补丁技术在2015年开始爆发,目前已经是非常热门的 Android 开发技术。其中比较著名的有淘宝的 Dexposed、支付宝的 AndFix 以及 QZone 的超级热补丁方案。微信对热补丁技术的研究并不算早,大约开始于2015年6月。经过研究与尝试现有的各个方案,我们发现它们都有着自身的一些局限性。微信最终采用不同于它们的技术方案,走出了自己的实践演进之路。 另外一方面,技术应当只是热补丁方案中的一环。随着对热补丁的多次尝试与应用,微信建立起自身的流程规范,同时也不断的尝试拓展它的应用场景
Flutter综合应用 Flutter综合应用 线上出现问题,该如何做好异常捕获和信息采集 Flutter异常 App异常的捕获方式 FrameWork异常的捕获方式 异常上报 Dart接口实现 iOS接口实现 Android接口实现 总结 衡量FLutter App线上质量,需要关注三个指标 页面异常率 页面帧率 页面加载时长 组件化和平台化,如何组织合理稳定的Flutter工程结构 组件化 组件化的具体实施步骤 平台化 如果下层组件确实需要调用上层组件的代码怎么办? 如何构建高效的Flutt
既然说到异步编程那就说下异步编程和同步编程的区别。 同步:简单来说就是按顺序执行,例如登录过程必须输入用户名、密码再点击登录 第一步:输入用户名 第二步:输入密码 第三部:点击登录 这就是一个同步过程 异步:异步可以说是同时进行多个任务,相互不干扰,第二个任务的执行不需要等待第一个任务执行。 例如: 下载一个Oracle的安装包,安装过得人应该知道 Oracle的安装包一般是有两个构成,必须两个都下载然后解压在一起才可以开始安装。这里我们下载的过程肯定是不需要先下载安装包1再下载安装包2,而是一起下载,等两个都下载好了进行安装。 我们可以对比下异步和同步所需时间,还是以下载Oracle安装包为例。 假设下载安装包1需要6s,下载安装包2需要4s 同步的操作: 一.下载安装包1 二.下载安装包2 所需时间:6+4 =10s 异步的操作:同时下载安装包1安装包2(排除网络原因) 所需时间应算最长下载时间,所需时间:6s
nodeJs是基于Chrome v8的js运行环境,简单的说, 就是运行在服务端的 JavaScript。不懂得像PHP、Python或Ruby等动态编程语言又想创建自己的服务(例如:前端程序员),Node.js是一个非常好的选择。
大家好,我是腾讯Bugly的精神哥(英文名:spirit),是Bugly资深码奴的同时,又是Bugly神秘的Crash实验室研究员哦!我的主要任务就是泡在实验室里,嗑着瓜子嚼着鸡爪,研究移动App中各种Crash(专挑疑难、坑爹、时髦、有趣的Crash),并通过“精神哥讲Crash”系列定期分享给大家! 今天精神哥给大家分享的第一个Crash是“UnsatisfiedLinkError” 。 一、UnsatisfiedLinkError基本介绍 全名java.lang.UnsatisfiedLinkErro
Question-one:有时候从 Github 上拷贝人家的工程,运行会出现各种依赖包、版本包问题,比如buildToolsVersion某一个版本不存在,需要你安装,那么你可以修改成你开发环境已经配置的版本。
使用Python的一定对著名的科学计算集成环境Anaconda(miniconda)并不陌生,而无论是使用Anaconda还是miniconda都必然会用到其包管理器——conda。作为一款管理python安装包的包管理器,其功能要比python自带的pip强大不少。
引言 随着项目中动态链接库越来越多,我们也遇到了很多奇怪的问题,比如只在某一种 OS 上会出现的 java.lang.UnsatisfiedLinkError,但是明明我们动态库名称没错,ABI 也没错,方法也能对应的上,而且还只出现在某一些机型上,搞的我们百思不得其解。为了找到出现千奇百怪问题的原因,和能够提供一个方式来解决一些比较奇怪的动态库加载的问题,我发现了解一下 so 的加载流程是非常有必要的了,便于我们发现问题和解决问题,这就是本文的由来。 要想了解动态链接库是如何加载的,首先是查看动态链接库是
想必园子里有好多朋友都写过paper吧,在阅读文献的时候,是不是觉得管理文献这个事情很麻烦。我正处于刚刚起步的阶段,英语写译老师Greatlion给我们推荐了一款文献管理工具Endnote,在学校FTP上下载了Endnote X2.0.1。安装了以后,发现Endnote还提供了移动设备上的程序,特别是Windows mobile和Palm的版本。于是乎心里大喜,以后在我WM手机上又多了一项功能--参考文献学习。虽然在WM上看pdf格式的paper有点鸡肋,但是浏览Abstract之类的功能还是不错的,至
https://archive.apache.org/dist/hadoop/common/,这里包含所有发布的版本
拓展:同步网络源到本地目录,以方便内网快速传输,更利于制作本地yum源。 reposync --repoid=xxxx #xxxx为镜像仓库名称 命令使用后会在当前目录生成一个一样xxxx 的文件夹,里面放的便是你选择仓库的rpm包,一样xxxx目录下会有一个repodata目录可以为写入repo文件做指定的。写入repo文件便于以下自制本地源一样。 自建yum源就是使用自己本地的rpm包来作为yum的源仓库。扩展 使用yum命令下载安装包以及依赖文件到本地。 1.可以在yum命令安装
先给大家讲个小故事吧! 2011年底,鹅厂内部出现一个“Crash监控”的服务后,开发某App的企鹅们发现了一个真相:原来自以为很稳定的版本,结果上线后竟然……。后来,这些企鹅们就开始默默地修Crash了。再后来,鹅厂的所有App都接入了Crash监控服务。 一般的产品开发过程,都会历经几大阶段。经过多年的经验积累,企鹅们已经将Crash监控充分融入到研发流程的各个阶段。在每个研发阶段充分利用Crash监控服务,让企鹅们的研发效率和质量得到大大的提升。 开发阶段
前两天有个用户反馈,应用在更新时会自动下载安装某些应用,怀疑与 Bugly 有关。经过分析,原来是 apk 地址被劫持,强制换成应用的下载地址。在这里,腾讯Bugly郑重声明:Bugly 不会监控和拦截任何网络请求,也不会自动下载安装任何应用,我们目前提供的能力只限捕获崩溃、卡顿等异常,帮助产品提升质量。所以,请大家放心使用! 根据 Bugly 目前提供的能力,统计数据主要包括:崩溃率、卡顿率等,用于衡量产品质量的一些标准。自 Bugly 上线以来,越来越多用户建议:能否提供用户数据的统计,帮助了解产品基本
最近因为开发需要,换了个mac,发现和Windows下面的操作和习惯真是千差万别啊,在这里记录一下,有需要的也可以参考一下。
虽然 dnf list 命令显示所有存储库中的所有可用 / 已安装包。但是,你可以选择使用选项 “仅列出已安装的软件包”list installed“ 如下所示。
1 最原始的内存泄露测试 重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落。 这种方式可以发现最基本,也是最明显的内存泄露问题,对用户价值最大,操作难度小,性价比极高。 2 MAT内存分析工具 2.1 MAT分析heap的总内存占用大小来初步判断是否存在泄露 在Devices 中,点击要监控的程序。 点击Devices视图界面中最上方一排图标中的“Update Heap” 点击Heap视图 点击Heap视图中的“Cause GC”按钮 到此为止需检
1. Flutter 异常概述 关于 Flutter 异常类型与捕获的文章网上已经有许多了,本文不再详细赘述,此处仅做个小结以保证文章的完整性。 Flutter 异常具体可分为以下几类: Dart 异常 同步异常 异步异常 App 异常 Framework 异常 Engine 异常 所谓 Dart 异常,根据来源又可以细分为 App 异常和 Framework 异常,而 App 异常指的是。根据异常代码的执行时序,App 异常可以分为两类,即同步异常和异步异常: 同步异常可以通过 try-catch 机制
腾讯Bugly特邀鹅厂MIG专项测试组,陆续为大家分享移动应用质量的有效评估方法。 MIG专项测试组 致力于为腾讯移动互联网事业群(MIG)提供专项评测及深度优化(性能、功能、安全等);同时负责探索新的测试理论和方法,研发评测工具及基础组件。 背景 在手机App竞争越来越激烈的今天,Android App的各项性能,如CPU、内存消耗等都有了客观的衡量指标。但对于App使用过程是否流畅,一直没有一个可靠的指标将用户的客观感受和数据一一对应。虽然之前有FPS(每秒帧数)作为游戏或视频类App的性能指标,
随着移动设备和系统的碎片化程度越来越高以及复杂的移动网络情况, 兼容性测试以及远程真机测试的重要性越来越突出。
继ChatGPT 苹果手机版推出后,OpenAI官方最近宣布推出了安卓版本。
谷歌Drive是由Google提供的云存储和文件共享服务,我们可以在其云端存储、同步和共享文件或文件夹;其和其他常用云盘应用类似,可以实现如下的功能。
如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析、追踪、注入等实用的破解技术,另外,通过“入侵”,将帮助您理解如何规避常见的安全漏洞,文章大纲: 简单介绍ios二进制文件结构与入侵的原理 介绍入侵常用的工具和方法,包括pc端和手机端 讲解黑客技术中的静态分析和动态分析法 通过一个简单的实例,来介绍如何综合运用砸壳、寻找注入点、lldb远程调试、追踪、反汇编技术来进行黑客实战 讲解越狱破解补丁和不需越狱的破解补丁制作方法和差别 ---- 黑客的素养 敏锐的嗅觉 有时候通过一个函数名,一个类名,就能大
领取专属 10元无门槛券
手把手带您无忧上云