ChatGTP全景图 | 背景+技术篇
引言:人类以为的丰功伟绩,不过是开端的开端……我们在未来100年取得的技术进步,将远超我们从控制火种到发明车轮以来所取得的一切成就。——By Sam Altman
说明:ChatGPT发布后,我第一时间体验了它的对话、翻译、编程、写作效果。随着一行行绿色的字快速地跳出来……一种触发了神秘力量的感觉,我预感到,一个更高维的庞然大物出现了。这样的现象级事物,可能对各行业都影响巨大,即使盲人摸象,也值得摸一摸吧。遂陆续收集了国内外100+文章和报告,趁春节假期稍微整理,分享给大家。整理后发现文章太长,计划分成上篇《背景+技术篇》,下篇会是《产品+商业篇》,so,快来催更呀~
01. 背景篇
**1.1 ChatGPT和OpenAI是什么?
**
ChatGPT是什么?
ChatGPT是由美国顶尖AI实验室OpenAI开发的一个人工智能聊天机器人程序,2022年11月上线,上线不到一周就突破100万用户。该程序使用基于GPT-3.5架构的大语言模型并通过强化学习进行训练,
OpenAI是什么?
OpenAI 是美国的AI实验室,非营利组织,定位是促进和发展友好的人工智能,使人类整体受益。OpenAI成立于2015年底,创始人是伊隆·马斯克以及前YC 总裁Sam Altman。
Sam Altman是谁?
马斯克就不用介绍了~ Samuel Altman,85年出生的美国人,斯坦福大学计算机系辍学创业的极客。美国知名风投机构YC的总裁,硅谷创业教父Paul Graham的继承人。如果你还不知道YC,你可能知道一个名人:YC的海外站——YC中国(现已更名奇绩创坛)总裁正是鼎鼎大名的陆奇。
OpenAI发展历程(主要来自维基百科)
2015年底,OpenAI成立,组织目标是通过与其他机构和研究者的“自由合作”,向公众开放专利和研究成果。2016年,OpenAI宣称将制造“通用”机器人,希望能够预防人工智能的灾难性影响,推动人工智能发挥积极作用。2019年3月1日成立OpenAI LP子公司,目标是盈利和商业化。2019年7月22日微软投资OpenAI 10亿美元,双方合作为Azure(微软的云服务)开发人工智能技术。2020年6月11日宣布了GPT-3语言模型,微软于2020年9月22日取得独家授权。2022年11月30日,OpenAI发布了名为ChatGPT的自然语言生成式模型,以对话方式进行交互。2023年1月:微软和OpenAI洽谈投资100亿美元事宜,并希望将OpenAI的人工智能技术纳入Word、Outlook、Powerpoint和其他应用程序中。
02 技术篇
2.1 ChatGPT的核心竞争力
从AI的三大核心要素:数据、算法、算力作简要整理分析。另外,在一个新事物的早期,其创始人的初心和愿景也非常值得关注,因此还增加一层——理念层的分析。
数据层:
在有3000亿单词的语料上预训练拥有1750亿参数的模型(训练语料的60%来自于 2016 - 2019 的 C4 + 22% 来自于 WebText2 + 16% 来自于Books + 3%来自于Wikipedia)。
算法层:
基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF) 的威力翔实的回应:text-davinci-003 的生成通常比 text-davinci-002长([29)(]) 。ChatGPT 的回应则更加冗长,以至于用户必须明确要求“用一句话回答我”,才能得到更加简洁的回答。这是 RLHF 的直接产物。公正的回应:ChatGPT 通常对涉及多个实体利益的事件(例如政治事件)给出非常平衡的回答。这也是RLHF的产物。拒绝不当问题:这是内容过滤器和由 RLHF 触发的模型自身能力的结合,过滤器过滤掉一部分,然后模型再拒绝一部分。拒绝其知识范围之外的问题:例如,拒绝在2021 年 6 月之后发生的新事件(因为它没在这之后的数据上训练过)。这是 RLHF 最神奇的部分,因为它使模型能够隐式地区分哪些问题在其知识范围内,哪些问题不在其知识范围内。——By 符尧 《万字拆解ChatGTP技术路线图》
算力层:
ChatGPT 的背后离不开大模型、大数据、大算力。ChatGPT 成为 AIGC 里程碑的背后,是算力发展和数字时代形成的大数据所共同支持的大模型训练,才能实现目前的效果。由 OpenAI 研发的 ChatGPT 是微调后的 GPT-3.5系列模型,有着多达 1750 亿个模型参数,并在今年年初训练完成。模型训练的背后离不开大数据的支持,OpenAI 主要使用的公共爬虫数据集有着超过万亿单词的人类语言数据集。在算力方面,GPT-3.5 在 Azure AI 超算基础设施(由 V100GPU 组成的高带宽集群)上进行训练,总算力消耗约 3640 PF-days(即每秒一千万亿次计算,运行 3640 天)。
理念层:
- 使命和愿景。出自OpenAI官网介绍:OpenAI是一家AI研发和部署公司。我们的使命是确保人工通用智能惠及全人类。OpenAI章程四个要点(破折号是笔者的个人理解):* 广泛造福社会——利他* 关注长远安全问题——保姆:)> 我们担心通用人工智能在发展后期将演变成一场激烈的竞赛,导致缺乏充足的时间进行安全防范。因此,如果一个与人类价值观相符、注重安全的项目领先于我们将近达成通用人工智能,我们承诺将停止竞赛,幷转而协助这个项目。我们会针对个别情况设计具体的合作方案。不过,一个典型的触发条件可能会是「这个项目在未来两年内能够成功研发通用人工智能的概率超过一半」。* 引领技术研究——前沿* 保持合作意愿——开放2. 创始人讲演摘录:From Sam Altman 万物摩尔定律我们需要设计一种制度拥抱这种技术化的未来,然后对构成未来世界大部分价值的资产(公司和土地)征税,以便公平地分配由此产生的财富。这样做可以使未来社会的分裂性大大降低,并使每个人都能参与收益分配。即将到来的变革将围绕着人类最超凡脱群的能力:思考、创造、理解和推理。在三大技术革命(农业革命、工业革命和计算机革命)的基础上,我们将迈入第四阶段:人工智能革命。如果我们作为一个共同的社会体可以负责任地进行这项革命,其产生的足够财富将使每个人都能得到他们所需要的东西。3. 技术理念(From 张俊林《通向AGI之路:大型语言模型(LLM)技术精要》)OpenAI是怎么看待LLM的呢?回顾它不断推出的技术,可以看出,它其实从GPT 1.0开始,基本就坚定地把LLM看作是通往AGI的一条必由之路。具体而言,在OpenAI眼中,未来的AGI应该长这个样子:有一个任务无关的超大型LLM,用来从海量数据中学习各种知识,这个LLM以生成一切的方式,来解决各种各样的实际问题,而且它应该能听懂人类的命令,以便于人类使用。其实对LLM发展理念的理解,在前半部分,就是“构建一个任务无关的超大型LLM,让它从海量数据中学习各种知识”,这一点几乎是大家的共识,能体现出OpenAI眼光的其实是后半部分。OpenAI的理念比较超前,对自我定位从一开始就定得比较高,始终坚定不移地探索上述方式是否可以实现AGI。OpenAI之所以能作出ChatGPT,胜在一个是定位比较高,另一个是不受外界干扰,态度上坚定不移。
2.2 GPT进化历程
模型维度(By 符尧)
大模型技术架构演进
研发大模型的金主们
数据量和大模型表现统计图
大模型为什么如此全能?
2.3 ChatGPT体验和分析
体验层面分析:近乎真人一样的理解能力,模型的鲁棒性非常好。经过道德训练,不评价人,你很难抓住它的把柄。如果没有这一条,chatGTP早被玩坏了,一堆的威胁论和口水战足以让它下线。更重fact,而不是opinion。你好像在跟一个理智而不是情绪主导的朋友聊天。中文略逊于英文。如果你让它作一首十四行诗,你会被漂亮的押韵惊讶到。如果许渊冲在世,这个爱玩中英法押韵的老人家估计能找到对手了。不了解2022年之后的世界。比如2022年卡塔尔世界杯,它会很老实地说自己不知道2022年之后的世界。这可能也是ChatGTP逊色于搜索引擎最大的地方。毕竟,一年的信息Gap足以让很多知识大打折扣。最后,如果你在问题里埋了陷阱,你可能会发现它在一本正经地胡说八道。
技术层分析(By 张俊林):ChatGPT的最大贡献在于:基本实现了理想LLM(大语言模型)的接口层,让LLM适配人的习惯命令表达方式,而不是反过来让人去适配LLM,绞尽脑汁地想出一个能Work的命令(这就是instruct技术出来之前,prompt技术在做的事情),而这增加了LLM的易用性和用户体验。是InstructGPT/ChatGPT首先意识到这个问题,并给出了很好的解决方案,这也是它最大的技术贡献。相对之前的few shot prompting,它是一种更符合人类表达习惯的人和LLM进行交互的人机接口技术。GTP/BERT这样的大模型出现后,可能导致一部分中间任务消亡。典型的中间任务包括:中文分词、词性标注、NER、句法分析、指代消解、语义Parser等,这类任务一般并不解决应用中的实际需求,大多数是作为那些解决实际需求任务的中间阶段或者辅助阶段存在的。自从Bert/GPT出现之后,其实就没有必要做这些中间任务了,因为通过大量数据的预训练,Bert/GPT已经把这些中间任务作为语言学特征,吸收到了Transformer的参数里,此时我们完全可以端到端地直接解决那些最终任务,而无须对这种中间过程专门建模。这点从统计机器翻译到神经网络机器翻译也有类似发展过程。
局限和弱点分析:以下是不同渠道的一些局限分析:指标缺陷:其奖励模型围绕人类监督而设计,可能导致过度优化,从而影响性能,这种如何确定衡量指标的难题在它身上也少不了。就像机器翻译的Bleu值,一直被吐槽,但找不到更好更方便的评估方式。无法实时改写模型的信念:当模型表达对某个事物的信念时,即使该信念是错误的,也很难纠正它。这,简直就像一个倔强的老头。知识非实时更新:模型的内部知识停留在2021年,对2022年之后的新闻没有纳入。这点在体验层面也说到了。模态单一:目前的ChatGPT擅长NLP和Code任务,作为通向AGI的重要种子选手,将图像、视频、音频等图像与多模态集成进入LLM,乃至AI for Science、机器人控制等更多、差异化更明显的其它领域逐步纳入LLM,是LLM通往AGI的必经之路。而这个方向才刚刚开始,因此具备很高的研究价值。高成本:超级大模型因为模型规模大,所以训练成本过高,导致很少有机构有能力去做这件事。
结语,一些非结构化的感想
- 就像以太坊创始人V神所说的,一个译后编辑的时代已经到来。AI预先编程、预先草拟内容,人类来修改。实际上,在翻译领域,这场革命已经开始,笔者在做的一个项目(www.languagex.com)就是这个方向。BTW,用LanguageX可以使用全球16个主流翻译引擎翻译,包括chatGPT,欢迎尝试(下图)。 如果我们作为一个共同的社会体可以负责任地进行这项革命(AI革命),其产生的财富足够每个人都能得到他们所需要的东西。——Sam 忘了,"人类的需要"是一个无底洞。不过,这句话的启发是:AI革命将极大提升社会生产力,创造巨额财富。 如果一个与人类价值观相符、注重安全的项目领先于我们将近达成通用人工智能,我们承诺将停止竞赛,幷转而协助这个项目——纯粹、立志服务于人的美好发心,才可以产生美好的愿景,才能做到足够开放,值得吸引顶级的头脑去奋斗,值得顶级的资本投入。 多元,而不是垄断。虽然多元或赛马消耗社会资源,但永远是最安全的方式,如果微软完全控制了OpenAI,我倒希望还有一个足以牵制和抗衡它的AI机构,比如DeepMind,或者其他。 大多数某领域所谓“独有”的问题,大概率只是缺乏领域知识导致的一种外在表象,只要领域知识足够多,这个所谓领域独有的问题,就可以被很好地解决掉,其实并不需要专门针对某个具体领域问题,冥思苦想去提出专用解决方案。也许AGI的真相超乎意料地简单:你只要把这个领域更多的数据交给LLM,让它自己学习更多知识即可。* ChatGPT最惊艳的技能几乎都涉及创意领域,比如写作、编程、翻译。现在看来,AI最有可能取代的工作包含了创造性工作。原来,AI眼中的难和我们眼中的难根本不是一个维度。AI也让我们更认识自己,逼着我们去思考一些事物的本质,比如意识是什么?情感是什么?创造是什么?日光之下,并无新事,我们所谓的“创新”,很大程度上,是不是也是一种沿袭(知识学习)和重组(内容生成)?* AI也将让我们审视,人类有什么是不可替代的?什么是人类更底层的东西?什么是更宝贵更独特的人类特质?什么是应该外包给AI的?人类应该把时间和生命花费在什么事物上?
(LanguageX的多机翻引擎阵列)
预告:如果催更力度达到一定阈值, 还会整理一篇产品和商业视角的ChatGPT~
One more thing,福利:
1、有5个比较值得研读的AIGC报告,在本公众号后台回复“chatgpt”可下载;
附:名词解释
AIGC:AI Generated Content ,人工智能自动生成内容NLP:Natural Language Processing,自然语言处理LLM:Large language model,大语言模型AGI:Artificial general intelligence,通用人工智能Prompt:提示词Fine-tuning:模型调优ML:Machine Learning,机器学习DL:Deep Learning,深度学习GPU:Graphics Processing Unit ,深度学习用的显卡BERT:Bidirectional Encoder Representations from Transformers”,双向编码器表示RLHF:Reinforcement Learning from Human Feedback,基于人类反馈的强化学习
一些信息量较大的延伸阅读:
OpenAI章程:https://openai.com/charter/红杉资本:生成式AI,一个创意新世界 https://www.sequoiacap.com/article/generative-ai-a-creative-new-world/2022年32篇最佳AI论文 https://hub.baai.ac.cn/view/22798万字拆解GTP技术路线图 https://mp.weixin.qq.com/s/7N3HveaIfn2N-zKjBoRL1A吴恩达的2022年终盘点:生成式AI、ViT、大模型 https://mp.weixin.qq.com/s/nagtjtYD98OlJlyddt78Aw一文带你了解生成式AI:https://mp.weixin.qq.com/s/ZE-nyGnCx-bLXwf2rhraTA陈巍谈芯:ChatGPT特点、原理、技术架构和产业未来 https://zhuanlan.zhihu.com/p/590655677OpenAI CEO Sam Altman:AI 将是移动互联网后新的基础平台https://mp.weixin.qq.com/s/hwfk1j33uLsbiDUA89p9vA爆火的chatGPT,和它的前世今生:https://m.huxiu.com/article/733716.html关于微软和OpenAI,以及GPT的那些事 Generative AI is here: How tools like ChatGPT could change your business基于ChatGTP的项目:https://www.zhihu.com/question/570189639/answer/2793888150通向AGI之路:大型语言模型(LLM)技术精要 https://zhuanlan.zhihu.com/p/597586623
相关文章:

ChatGTP全景图 | 背景+技术篇
引言:人类以为的丰功伟绩,不过是开端的开端……我们在未来100年取得的技术进步,将远超我们从控制火种到发明车轮以来所取得的一切成就。——By Sam Altman 说明:ChatGPT发布后,我第一时间体验了它的对话、翻译、编程、…...

计算机专业学习的核心是什么?
既然是学习CS,那么在这里,我粗浅的把计算机编程领域的知识分为三个部分: 基础知识 特定领域知识 框架和开发技能 基础知识是指不管从事任何方向的软件工程师都应该掌握的,比如数据结构、算法、操作系统。 特定领域知识就是你…...

基于springboot地方旅游系统的设计与实现
摘 要 本次设计内容是基于Springboot的旅游系统的设计与实现,采用B/S三层架构分别是Web表现层、Service业务层、Dao数据访问层,并使用Springboot,MyBatis二大框架整合开发服务器端,前端使用vue,elementUI技术&…...
一些学习资料链接
组件化和CocoaPods iOS 组件化的三种方案_迷曳的博客-CSDN博客 CocoaPods 私有化 iOS组件化----Pod私有库创建及使用 - 简书 CocoaPods1.9.1和1.8 使用 出现CDN: trunk URL couldnt be downloaded: - 简书 cocoapod制作私有库repo - 简书 【ios开发】 上传更新本地项目到…...

Webpack打包图片-JS-Vue
1 Webpack打包图片 2 Webpack打包JS代码 3 Babel和babel-loader 5 resolve模块解析 4 Webpack打包Vue webpack5打包 的过程: 在webpack的配置文件里面编写rules,type类型有多种,每个都有自己的作用,想要把小内存的图片转成bas…...

进程控制(Linux)
进程控制 fork 在Linux中,fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 返回值: 在子进程中返回0,父进程中返回子进程的PID,子进程创建失败返回-1。 …...

C Primer Plus第十四章编程练习答案
学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出! 由于使用的是命令行参数常用于linux系…...

又名管道和无名管道
一、进程间通信(IPC,InterProcess Communication) 概念:就是进程和进程之间交换信息。 常用通信方式 无名管道(pipe) 有名管道 (fifo) 信号(signal) 共…...

操作系统复习4.1.0-文件管理结构
定义 一组有意义的信息的集合 属性 文件名、标识符、类型、位置、大小、创建时间、上次修改时间、文件所有者信息、保护信息 操作系统向上提供的功能 创建文件、删除文件、读文件、写文件、打开文件、关闭文件 这6个都是系统调用 创建文件 创建文件时调用Create系统调用…...

【嵌入式烧录/刷写文件】-2.6-剪切/保留Intel Hex文件中指定地址范围内的数据
案例背景: 有如下一段HEX文件,保留地址范围0x9140-0x91BF内的数据,删除地址范围0x9140-0x91BF外的数据。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F :2091200078797A7B7C7D7E7F808182838485868788898A…...
JavaScript表单事件(下篇)
目录 八、keydown: 当用户按下键盘上的任意键时触发。 九、keyup: 当用户释放键盘上的键时触发。 十、keypress: 当用户按下键盘上的字符键时触发。 十一、focusin: 当表单元素或其子元素获得焦点时触发。 十二、focusout: 当表单元素或其子元素失去焦点时触发。 十三、c…...

机器学习 | SVD奇异值分解
本文整理自哔哩哔哩视频:什么是奇异值分解SVD–SVD如何分解时空矩阵 📚奇异值分解是什么? M是原始矩阵,它可以是任意的矩阵,奇异值分解就是将它分解为三个矩阵相乘。U和V是方阵,∑是不规则矩阵,…...

chatgpt赋能python:Python取值:介绍
Python取值:介绍 Python是一种非常流行的高级编程语言,适用于各种任务,包括数据科学、机器学习、Web开发和自动化。它被广泛使用,因为它易于学习、易于使用、易于阅读和易于维护。Python中的取值对于程序员来说是一个极其有用的工…...

广播风暴的成因以及如何判断、解决
广播风暴(broadcast storm)简单的讲是指当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。一个数据帧或包被传输到本地网段 (由广播…...

Loki 日志收集系统
一.系统架构 二.组成部分 Loki 的日志堆栈由 3 个组件组成: promtail:用于采集日志、并给每条日志流打标签,每个节点部署,k8s部署模式下使用daemonset管理。 loki:用于存储采集的日志, 并根据标签查询日志流…...

uCOSii信号量的作用
uCOSii中信号量的作用: 在创建信号量时,Sem_EventOSSemCreate(1)用于分时复用共享资源; Sem_EventOSSemCreate(0)用于中断和任务间同步或任务之间的同步。 具体在使用时,需要灵活运用。在访问共享资源时,我喜欢用互…...
Android 13 版本变更总览
Android 13 总览 https://developer.android.google.cn/about/versions/13?hlzh-cn 文章基于官方资料上提取 Android 13 功能和变更列表 https://developer.android.google.cn/about/versions/13/summary?hlzh-cn 行为变更:所有应用 https://developer.andr…...

QT 设计ROS GUI界面订阅和发布话题
QT 设计ROS GUI界面订阅和发布话题 主要参考下面的博客 ROS项目开发实战(三)——使用QT进行ROS的GUI界面设计(详细教程附代码!!!) Qt ROS 相关配置请看上一篇博客 首先建立工作空间和功能包&a…...

pandas数据预处理
pandas数据预处理 pandas及其数据结构pandas简介Series数据结构及其创建DataFrame数据结构及其创建 利用pandas导入导出数据导入外部数据导入数据文件 导出外部数据导出数据文件 数据概览及预处理数据概览分析利用DataFrame的常用属性利用DataFrame的常用方法 数据清洗缺失值处…...

Jupyter Notebook如何导入导出文件
目录 0.系统:windows 1.打开 Jupyter Notebook 2.Jupyter Notebook导入文件 3.Jupyter Notebook导出文件 0.系统:windows 1.打开 Jupyter Notebook 1)下载【Anaconda】后,直接点击【Jupyter Notebook】即可在网页打开 Jupyte…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...

Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...