陈洪亮 2025-11-02 02:02:48
每经编辑|陈淼淼
当地时间2025-11-02,mjwysadhwejkrbdsfjhbsdvf,不见星空23部视频百度云
各(ge)位开(kai)发(fa)者朋友(you)们,是(shi)否(fou)曾(ceng)经有(you)过(guo)这样(yang)的(de)经历(li):辛辛苦苦(ku)开发(fa)的应用,在用户(hu)手中却(que)屡屡出现(xian)意(yi)料之外的(de)崩溃、卡顿(dun),或是(shi)各种(zhong)诡(gui)异(yi)的(de)错(cuo)误提示,让你怀(huai)疑人(ren)生?你翻遍代码,检查逻辑(ji),却依(yi)旧(jiu)无从下(xia)手。别担心,你不是一(yi)个人在战(zhan)斗!今天,我们就来(lai)一起(qi)揭开应(ying)用堆栈的神秘(mi)面纱(sha),看(kan)看(kan)它是(shi)如(ru)何成(cheng)为(wei)我们(men)解决这(zhe)些棘(ji)手问(wen)题(ti)的“秘密武器”的。
想(xiang)象一(yi)下(xia),你的应(ying)用(yong)就像一(yi)个繁(fan)忙(mang)的(de)城(cheng)市(shi),各种任(ren)务(wu)(函(han)数调用(yong))在其中(zhong)穿梭(suo),数据流(liu)如同车流(liu),而堆栈(zhan),就(jiu)是(shi)记录(lu)这些车流(liu)信息的“交(jiao)通日(ri)志(zhi)”。当(dang)应用(yong)出(chu)现(xian)问题(ti)时,堆(dui)栈信(xin)息就(jiu)像是城市(shi)交通拥(yong)堵时的“监控录像(xiang)”,它记(ji)录了事件(jian)发生的顺(shun)序、涉(she)及的(de)地点(函数(shu))以及当(dang)时(shi)的“交通(tong)状况”(变量值(zhi))。
通过解读这些(xie)“交(jiao)通日志”,我们(men)就能精准(zhun)地找(zhao)到(dao)问题(ti)的根源(yuan),而不是像无头(tou)苍蝇一样(yang)乱撞(zhuang)。
简(jian)单(dan)来说(shuo),应用(yong)堆栈(zhan)(ApplicationStack)是指程序(xu)在(zai)执行过(guo)程中(zhong),函(han)数(shu)调用(yong)之间(jian)相互关联(lian)的(de)数据(ju)结构。当(dang)一个(ge)函数(shu)被调(diao)用(yong)时,它(ta)会被(bei)压入一个称为“栈帧”(StackFrame)的数据(ju)结构(gou)中,这(zhe)个栈帧包(bao)含了该(gai)函(han)数的(de)局部变量、返回地(di)址(zhi)以及(ji)其他(ta)一(yi)些必要的信(xin)息。
为什(shen)么(me)堆(dui)栈如此重(zhong)要?因为它记录了程序执行的“调(diao)用(yong)链”。当(dang)一个(ge)错误(wu)发生时(shi),堆栈信(xin)息会(hui)清晰(xi)地展(zhan)示从(cong)程(cheng)序入口(kou)到错误发生(sheng)点(dian),所(suo)有被(bei)调用的函(han)数(shu)及其顺序(xu)。这就像是一个(ge)侦(zhen)探在(zai)犯罪现(xian)场找到的(de)脚印,指引(yin)着(zhe)我们追(zhui)溯事件的真(zhen)相。没有(you)堆(dui)栈(zhan)信息(xi),我(wo)们(men)可(ke)能只能(neng)看到(dao)“结果”,而(er)无(wu)法了(le)解(jie)“过程”。
NullPointerException/访问空指针(zhen)异(yi)常:这(zhe)是最常见(jian)的“杀手”之(zhi)一。堆栈信息(xi)会明确(que)指出是(shi)哪个函(han)数(shu)在(zai)尝(chang)试访问(wen)一个空对象。你需要(yao)仔(zai)细查看(kan)该函数的(de)代码(ma),找出(chu)是哪个变(bian)量没有被(bei)正(zheng)确(que)初始(shi)化(hua),或(huo)者在(zai)某个(ge)条件下变(bian)成(cheng)了null。
堆栈(zhan)解(jie)析(xi)重(zhong)点(dian):关注出(chu)现异常(chang)的函数名(ming)和行号,以及该(gai)行(xing)代码中(zhong)涉及(ji)的变量(liang)。解决思(si)路(lu):增(zeng)加非空(kong)判(pan)断;在合适的地(di)方进(jin)行对象(xiang)初(chu)始化(hua);检(jian)查(cha)数据(ju)源(yuan)是否(fou)返(fan)回了(le)预期(qi)的值。
IndexOutOfBoundsException/数(shu)组越界异常(chang):当你试图访问一个(ge)不存在的数组(zu)索引(yin)时,就(jiu)会(hui)触发(fa)这个异(yi)常。堆(dui)栈会告诉(su)你是(shi)在哪(na)个(ge)函(han)数的(de)哪(na)一(yi)行代码(ma),访(fang)问了(le)哪个数组(zu),以及(ji)你(ni)尝(chang)试访问的(de)索引(yin)是多(duo)少。
堆栈解析重(zhong)点:检(jian)查数组的(de)长度(du)和访(fang)问的索引(yin)值,确认(ren)是(shi)否存在逻(luo)辑(ji)错误导致索(suo)引超出(chu)范围(wei)。解(jie)决思(si)路(lu):确(que)保数(shu)组已(yi)正确初始化且(qie)有足够的元素(su);在访问(wen)数组前(qian),进(jin)行边(bian)界(jie)检(jian)查(cha)(例(li)如,if(index
StackOverflowError/栈溢(yi)出错误:这(zhe)种情况通(tong)常意味着你的程(cheng)序(xu)进(jin)入(ru)了无(wu)限递归(gui)的(de)循环(huan),或者(zhe)递归(gui)深度(du)过大(da),导(dao)致(zhi)栈空间被耗尽(jin)。堆栈信(xin)息(xi)会(hui)非(fei)常长,不断(duan)重复(fu)地显(xian)示同一(yi)个(ge)或几(ji)个函(han)数的调(diao)用(yong)。
堆栈解析(xi)重点:识别(bie)出重复(fu)出(chu)现的函数调用(yong),这(zhe)通(tong)常(chang)是无限(xian)递(di)归(gui)的“元(yuan)凶”。解(jie)决思路(lu):检(jian)查递(di)归函(han)数的(de)终止(zhi)条件(jian)是(shi)否正确(que);考虑是否(fou)可以(yi)用(yong)迭代的方式(shi)代替递归。
OutOfMemoryError/内存(cun)溢出(chu)错误:虽然(ran)内存溢出不(bu)直接是堆栈(zhan)信息(xi),但堆栈信息可(ke)以(yi)帮(bang)助(zhu)我们定(ding)位内(nei)存(cun)泄漏的(de)源头。如果内存(cun)溢出发生在某(mou)个特定的函(han)数(shu)调用链中,堆栈(zhan)信息可(ke)以(yi)提示(shi)我们是哪些对(dui)象在(zai)大量创建(jian),或者哪(na)些资源没有(you)被(bei)及(ji)时释(shi)放。
堆栈解(jie)析(xi)重(zhong)点:观(guan)察出现(xian)内(nei)存溢(yi)出(chu)的(de)函数(shu)调(diao)用路径(jing),寻找(zhao)可(ke)能(neng)导致大(da)量(liang)内(nei)存(cun)占(zhan)用的对(dui)象创(chuang)建(jian)或(huo)资源未释(shi)放的(de)地方(fang)。解决思路:分析内存(cun)使用情况(kuang),找出内存泄漏(lou)点;优(you)化对象(xiang)生命周期管(guan)理;及(ji)时释(shi)放(fang)不再使(shi)用的(de)资源(如流(liu)、数(shu)据库(ku)连接等(deng))。
在(zai)开发(fa)过(guo)程中(zhong),我(wo)们(men)离(li)不开(kai)强(qiang)大(da)的调(diao)试工具。deveco作为华(hua)为开(kai)发者社区(qu)提供的(de)一(yi)站式(shi)开发调试工具(ju),在应用(yong)堆(dui)栈解(jie)析方面(mian)也(ye)提供(gong)了强(qiang)大的(de)支持(chi)。通(tong)过deveco,我(wo)们可以(yi):
实(shi)时捕(bu)获堆(dui)栈(zhan)信(xin)息(xi):当应(ying)用发(fa)生(sheng)异常时(shi),deveco可以(yi)实时(shi)捕获(huo)并展(zhan)示详细的(de)堆栈(zhan)信息,让你无需手动去(qu)查找(zhao)日志文(wen)件(jian)。友好的(de)可视化界面:deveco将(jiang)复杂(za)的堆(dui)栈信(xin)息以直观(guan)易懂(dong)的(de)方式(shi)呈现,你(ni)可以(yi)轻松地浏览函数(shu)调(diao)用链(lian),定位(wei)问(wen)题(ti)发生(sheng)的代(dai)码行。结合日志分(fen)析(xi):deveco可以(yi)与日志系统集(ji)成,将(jiang)堆(dui)栈(zhan)信息(xi)与相(xiang)关的日志(zhi)消息(xi)关联(lian)起来(lai),提供(gong)更全面(mian)的(de)上(shang)下(xia)文(wen)信息,帮(bang)助你更深(shen)入地(di)理解错(cuo)误(wu)发生(sheng)的原(yuan)因。
连接设备与(yu)IDE:将你(ni)的设(she)备连(lian)接(jie)到(dao)开发环境(jing),并(bing)在deveco中确保设(she)备已(yi)成功连接(jie)。运行应(ying)用并触发异常:正(zheng)常运行你的(de)应用(yong),并(bing)尝试触发(fa)可能(neng)导致(zhi)异常(chang)的(de)操作。查看(kan)堆栈信(xin)息:当异常发(fa)生(sheng)时,deveco的(de)调试(shi)窗(chuang)口(kou)会(hui)弹出,显(xian)示(shi)详(xiang)细的(de)堆(dui)栈信息(xi)。你(ni)可以(yi)点(dian)击函数(shu)名(ming)跳(tiao)转到对(dui)应(ying)的代(dai)码(ma)行。
分析堆(dui)栈层级:从(cong)上到(dao)下,堆(dui)栈信(xin)息展示(shi)了函(han)数(shu)调用(yong)的(de)“逆(ni)序”过(guo)程。最顶(ding)端的函(han)数是(shi)最先被调(diao)用的(de),而最(zui)底端(duan)的函数则(ze)是直接导(dao)致异常的(de)函数。
通过熟练(lian)掌握(wo)deveco的(de)堆栈解(jie)析功能,你(ni)可(ke)以(yi)大(da)大(da)提(ti)高调试效率,让那(na)些曾(ceng)经令(ling)人(ren)头(tou)疼的(de)错误迎刃而(er)解。
应(ying)用(yong)堆(dui)栈(zhan)是我们(men)理解程(cheng)序运(yun)行(xing)流程(cheng)、定(ding)位错(cuo)误(wu)根(gen)源的(de)关键。掌握堆栈(zhan)的含(han)义、学会解(jie)读常见(jian)的错误(wu)提示(shi),并善(shan)用deveco这样的(de)强(qiang)大(da)工具(ju),将使(shi)你的(de)应(ying)用调试(shi)之路事半功倍(bei)。在(zai)下(xia)一部(bu)分,我(wo)们(men)将深入(ru)探(tan)讨(tao)更复杂的(de)堆栈错(cuo)误场景(jing),并提(ti)供(gong)更(geng)具针对性的解(jie)决方(fang)案。
在上一部分(fen),我(wo)们已经(jing)对应用(yong)堆栈有了(le)初步(bu)的认识(shi),并了(le)解(jie)了如何(he)通过deveco等(deng)工(gong)具来捕(bu)获和查看(kan)堆栈信息(xi)。堆栈信息的解(jie)读(du)并非总是那(na)么直(zhi)观(guan),尤(you)其是在面对(dui)一(yi)些复杂(za)的(de)、间(jian)歇性的(de)错误(wu)时,我(wo)们需(xu)要更深入(ru)的分析和更(geng)精(jing)湛的(de)调试技巧。今天,我们将继(ji)续深(shen)入,解锁更(geng)多关(guan)于应用堆栈的(de)“独(du)孤九剑”,让(rang)你(ni)在应用调(diao)试的(de)道路上更进一(yi)步!
除了函数名和行号,堆栈信息(xi)中还可能包含其他有价值的(de)线索,我们应(ying)该(gai)学会(hui)如何挖掘它们:
变(bian)量(liang)值与(yu)上下文(wen)信(xin)息:很(hen)多时(shi)候,仅(jin)仅知(zhi)道错误(wu)发(fa)生在(zai)哪个(ge)函数(shu)还(hai)不(bu)够(gou),我(wo)们(men)需要了解在该函数被调用(yong)时,关(guan)键变(bian)量(liang)的值(zhi)是(shi)什么(me)。
如何获取(qu):在deveco等(deng)调(diao)试器中,你可以设(she)置断(duan)点,当(dang)程序(xu)执行(xing)到该(gai)函数时(shi),查看(kan)当(dang)前作(zuo)用(yong)域(yu)内的所有变(bian)量的值(zhi)。这能(neng)帮助(zhu)你(ni)理解(jie)为(wei)什么会出(chu)现错误,例如(ru),一个本(ben)应(ying)是(shi)有效(xiao)数据的(de)变(bian)量(liang),却因为(wei)某(mou)个(ge)条件(jian)变(bian)成了null或无(wu)效(xiao)值。应(ying)用场(chang)景:假(jia)设一(yi)个用(yong)户列(lie)表显示为(wei)空,但(dan)你预(yu)期应(ying)该有数据(ju)。
通过查看(kan)导(dao)致(zhi)列表(biao)为空(kong)的(de)函(han)数调用堆(dui)栈,并在相(xiang)关函(han)数处(chu)设(she)置断点,你(ni)可以检(jian)查从(cong)数据源获(huo)取用(yong)户列表的函数(shu)返回了(le)什么(me),以(yi)及后续处(chu)理这(zhe)些数据的函数(shu)中的变(bian)量状态(tai)。
线程(cheng)信息(xi):对于(yu)多线程(cheng)的(de)应用(yong),理解(jie)错误发(fa)生(sheng)在哪(na)个(ge)线程至(zhi)关重(zhong)要(yao)。不(bu)同(tong)的(de)线程可(ke)能(neng)共享资(zi)源,也(ye)可能存(cun)在同(tong)步(bu)问(wen)题。
如(ru)何识(shi)别:堆栈信(xin)息通常会包(bao)含(han)线程ID或线程名(ming)称。在deveco中,你可以(yi)查看(kan)当(dang)前(qian)所有线(xian)程的(de)堆(dui)栈信(xin)息,从(cong)而(er)了(le)解(jie)各(ge)个线(xian)程(cheng)的(de)运行(xing)状态(tai)。应用场(chang)景(jing):如(ru)果一个UI线程(cheng)因为在(zai)后台线(xian)程中(zhong)执行了(le)耗(hao)时(shi)操作(zuo)而(er)ANR(ApplicationNotResponding),堆栈(zhan)信息(xi)会清晰(xi)地(di)显示(shi)UI线程处(chu)于(yu)等待状(zhuang)态(tai),而某(mou)个后台(tai)线(xian)程(cheng)正在执行导(dao)致问(wen)题的(de)代码。
异常类型与(yu)消息:除了底(di)层的(de)堆栈(zhan)信息(xi),异(yi)常(chang)对象(xiang)本身也携(xie)带着(zhe)重要(yao)的(de)信息(xi)。
如(ru)何利(li)用(yong):异常(chang)对(dui)象(xiang)通常包含一个详细(xi)的错误消息(getMessage())和一(yi)个“原(yuan)因”(getCause())信息,后(hou)者可(ke)能(neng)指(zhi)向另(ling)一(yi)个(ge)被包装的异常(chang)。应(ying)用(yong)场景(jing):比如,一个(ge)IOException可能(neng)被包(bao)装在一个FileNotFoundException里。
通(tong)过查(cha)看(kan)getCause(),你可以(yi)了解更(geng)底(di)层的(de)错(cuo)误,是文(wen)件(jian)不(bu)存在,还(hai)是(shi)没有(you)读取(qu)权限(xian)。
间歇性(xing)崩(beng)溃/偶(ou)发(fa)性错(cuo)误(wu):这类(lei)错误往往最令(ling)人头(tou)疼,因(yin)为(wei)它(ta)们(men)难以复(fu)现。
调(diao)试策略:增(zeng)强日(ri)志记(ji)录:在(zai)可(ke)能出(chu)错的关(guan)键路径(jing)上(shang)增加详细(xi)的(de)日志,包(bao)括时间戳、重要(yao)的变量值(zhi)、线(xian)程(cheng)ID等。将日(ri)志(zhi)级(ji)别(bie)调整(zheng)到DEBUG或VERBOSE,并开(kai)启详细日(ri)志输(shu)出。远(yuan)程日志监控:使(shi)用(yong)类似FirebaseCrashlytics、Sentry等第三方服务,它们可(ke)以自(zi)动收(shou)集(ji)和(he)上报(bao)应用(yong)的崩溃信(xin)息(xi),并提(ti)供详(xiang)细的堆(dui)栈报告(gao),即使是(shi)用户(hu)侧(ce)的偶发(fa)崩(beng)溃也能(neng)被捕获。
压力测(ce)试(shi)与(yu)模(mo)拟:尝(chang)试模拟真实用(yong)户的使(shi)用场景,进行高(gao)频率、长时间的(de)压力(li)测试(shi),或者(zhe)模(mo)拟网络不稳定、低内存等极(ji)端环境,以增(zeng)加(jia)触发(fa)偶(ou)发(fa)错误(wu)的几率(lv)。代码审(shen)查:对于(yu)难以(yi)复(fu)现(xian)的(de)错误,仔细(xi)审查(cha)相(xiang)关(guan)代(dai)码(ma)是(shi)否(fou)存在潜在(zai)的竞(jing)态条件(jian)、资源(yuan)泄露(lu)、不恰当(dang)的异常(chang)处理等(deng)。
性能(neng)瓶颈与(yu)卡(ka)顿:虽(sui)然(ran)不(bu)是直(zhi)接的(de)“崩溃”,但(dan)性(xing)能问题同样影(ying)响用户(hu)体验。堆(dui)栈信息可以(yi)帮(bang)助(zhu)我(wo)们定位(wei)性(xing)能瓶(ping)颈(jing)。
调(diao)试策(ce)略(lve):性能分(fen)析工(gong)具(ju):利(li)用(yong)AndroidStudio自带(dai)的(de)Profiler(CPUProfiler,MemoryProfiler)或deveco提(ti)供的性能(neng)分析功能。这些(xie)工具能(neng)可(ke)视化(hua)地展示CPU使(shi)用率(lv)、内存分配(pei)、线(xian)程(cheng)活动(dong)等,并能(neng)导(dao)出方(fang)法(fa)跟踪(zong)(MethodTracing)信(xin)息。
方法跟(gen)踪(MethodTracing):录(lu)制方(fang)法跟踪,然(ran)后分析(xi)生成(cheng)的(de)报告(gao)。报(bao)告会显(xian)示各(ge)个方法的调用(yong)次数(shu)、执行(xing)时间(jian),以及(ji)它们在堆(dui)栈(zhan)中(zhong)的位(wei)置。找出那(na)些执(zhi)行(xing)时间(jian)过长、调(diao)用频(pin)率(lv)过高(gao)的(de)函数(shu),它(ta)们(men)往往(wang)是性(xing)能瓶颈的所在(zai)。分析(xi)堆栈(zhan)火焰图:一些性(xing)能分(fen)析工具还能生成(cheng)火(huo)焰图(tu)(FlameGraph),这是一(yi)种(zhong)将方法(fa)调用栈信息可视(shi)化的方式(shi),能够(gou)直观(guan)地(di)展(zhan)示哪(na)些函数占(zhan)用了最多的CPU时间。
第(di)三(san)方库(ku)或(huo)SDK引发的错(cuo)误(wu):有(you)时(shi),错(cuo)误并(bing)非源于我们自己的(de)代码(ma),而是来自(zi)集成(cheng)进来的第(di)三方(fang)库。
调试策(ce)略:查看堆栈的(de)“边界(jie)”:仔细观察(cha)堆栈信息,区分(fen)是自己的包(bao)名(ming)下的类,还(hai)是(shi)第(di)三方库的类。隔(ge)离与测(ce)试(shi):尝试(shi)暂时(shi)移除(chu)或(huo)禁(jin)用某个第三方库,看错(cuo)误是否(fou)消(xiao)失(shi)。如果是(shi),那么问(wen)题很(hen)可能(neng)出在(zai)该(gai)库或其(qi)集成(cheng)方式(shi)上。查(cha)阅文档(dang)与(yu)社区(qu):仔细(xi)阅(yue)读第三(san)方库的官(guan)方文(wen)档,搜索其已知(zhi)的问题和解决(jue)方(fang)案(an)。
在(zai)开发者(zhe)社(she)区(qu)(如(ru)StackOverflow、GitHubIssues)查找是(shi)否有(you)其(qi)他人遇(yu)到类(lei)似问(wen)题。更新或降级:尝试(shi)更新到(dao)最新版(ban)本的(de)第(di)三(san)方库(ku),或者(zhe)回退(tui)到之(zhi)前(qian)稳定(ding)的版本(ben),看是(shi)否能(neng)解决(jue)问题。
除了基本(ben)的堆栈查(cha)看,deveco还(hai)提供(gong)了更高级(ji)的功能来辅助(zhu)调试(shi):
条件断(duan)点(dian)(ConditionalBreakpoints):设置(zhi)只(zhi)有(you)当满(man)足(zu)特(te)定(ding)条件时(shi)才会触(chu)发的断(duan)点。例(li)如(ru),当一个(ge)变量(liang)等于(yu)特定(ding)值时(shi)才暂停。这(zhe)对于调(diao)试偶发性错(cuo)误(wu)非(fei)常有(you)帮(bang)助。表达式求(qiu)值(zhi)(EvaluateExpression):在(zai)程(cheng)序暂停(ting)时,可以(yi)在调试(shi)器中(zhong)执(zhi)行任意合(he)法(fa)的(de)代码片段,实(shi)时(shi)查(cha)看变(bian)量值(zhi)、调用函数(shu)等,这(zhe)极大地提(ti)高了(le)调试(shi)的灵(ling)活性(xing)。
日志过滤(lv)与搜(sou)索(suo):deveco的日志(zhi)面(mian)板支持强(qiang)大(da)的过(guo)滤(lv)和(he)搜索(suo)功(gong)能,你可以根(gen)据关键词、日志级别、线程(cheng)等快(kuai)速(su)定位到你需(xu)要的日志(zhi)信息(xi),并结合(he)堆(dui)栈(zhan)信(xin)息(xi)进行(xing)分析。远(yuan)程调(diao)试:即(ji)使(shi)应用部(bu)署在(zai)远(yuan)程(cheng)设备或服(fu)务器(qi)上,你也可(ke)以(yi)通(tong)过deveco进行远(yuan)程调(diao)试(shi),这(zhe)对(dui)于调试(shi)生产环境中的(de)问题尤其宝贵(gui)。
应用(yong)堆(dui)栈解(jie)析(xi),绝非(fei)仅仅是(shi)“看懂错(cuo)误信息”这(zhe)么简(jian)单(dan),它(ta)是一(yi)门艺(yi)术(shu),更(geng)是一项技(ji)能。它要求我(wo)们(men)具备逻辑(ji)思维(wei)、耐心细致(zhi),并善(shan)于利用工具。通(tong)过深入理解堆栈(zhan)的(de)运作机制(zhi),掌握各种错(cuo)误(wu)提(ti)示(shi)的解(jie)读方(fang)法,并熟练(lian)运用(yong)deveco等调试工(gong)具,你(ni)将能从一(yi)个(ge)被(bei)动“解(jie)密错误(wu)”的(de)开发者,成长为一个(ge)主(zhu)动“创造(zao)稳定(ding)应(ying)用”的工(gong)程(cheng)师(shi)。
每(mei)一次成(cheng)功的调试,都是(shi)对(dui)代码(ma)理(li)解的(de)加深(shen),对问题解(jie)决能力(li)的提升。希望(wang)这篇“软文(wen)”能为(wei)你打(da)开一扇新(xin)的(de)大门,让(rang)你在(zai)应(ying)用(yong)开发(fa)的道(dao)路上,更加自(zi)信,更(geng)加从容(rong)!不(bu)断实践,不断(duan)总结(jie),相(xiang)信(xin)你一定能成(cheng)为一名(ming)卓越(yue)的(de)应用调试大师!
2025-11-02,把护士的批日出水120分钟百度,【东吴电新】骄成超声2025中报点评:锂电和线束业务高增,半导体业务进展显著
1.老少配vibd和bgmbgmbgm的区别,107.89亿元信用卡坏账2.45亿元甩卖 银行出清风险向精细化运营转型?91马眼棒,甘肃金融监管局核准李臻甘肃银行平凉分行副行长任职资格
图片来源:每经记者 陶拴科
摄
2.白峰美羽无码流出作品+乌克兰美女照片高清图片,郝大庆卸任*ST金泰总裁 吴纯超接棒掌舵
3.极品教师第四集电视剧免费+CM205合租之偷窥季晓彤详情介绍CM205合租之偷窥季晓彤在线观看虎扑影视,广汽传祺向往 S9 乾崑汽车 9 月 19 日上市:标配华为 ADS 4 Max 超阶版,预售价 25.99 万元起
娜娜坏坏多多影音+微信二维码200叫小妹,指尖悦动公布中期业绩 净利润约440万元同比减少52.4%
智慧导览!海角社区id1220.7126,10.22,8.0.0豆瓣小组
封面图片来源:图片来源:每经记者 名称 摄
如需转载请与《每日经济新闻》报社联系。
未经《每日经济新闻》报社授权,严禁转载或镜像,违者必究。
读者热线:4008890008
特别提醒:如果我们使用了您的图片,请作者与本站联系索取稿酬。如您不希望作品出现在本站,可联系金年会要求撤下您的作品。
欢迎关注每日经济新闻APP