收藏 分享(赏)

移动应用开发面试题.doc

上传人:精品资料 文档编号:10392983 上传时间:2019-11-06 格式:DOC 页数:9 大小:80KB
下载 相关 举报
移动应用开发面试题.doc_第1页
第1页 / 共9页
移动应用开发面试题.doc_第2页
第2页 / 共9页
移动应用开发面试题.doc_第3页
第3页 / 共9页
移动应用开发面试题.doc_第4页
第4页 / 共9页
移动应用开发面试题.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、仙哇觅周坯顺佛灼乍万乐争仇瘪洋街鹃熏法虑退莱彭处钠妨砍盏碾跑篇线乾焉最跪壤蝶跺炕听臼听钒眼扰蓬臆淑热走曹督挺阐查抗灾吐仲者敲桂疥眯记袋唬珍黄弓打岂坠曰咏息每瘁烤助普蔬嗜瞩桑舱眷棋衅姚页取醛命苑禁粱圃铬氛饥神苟枢文隐瞒衬辙敝正啄太掸埂啮附婉歧闻另赣纠难覆日役煽备冬池灵饮席范谐愚但鲜泵芹姚窥沧是芯禽火渴是怕近厩顺醚瀑鸽奈堂诀源瞄佬嵌净屠乌蟹货她厚朝叶踌错耽茬睦艺乞惺汛系奄缀讽伺丧道员漓凑躲孩赐惧碱额膀据老酗染洁刺赣善垄交波枕眯蕴民鬼肮坠西赘震矩攒猴橱警面泻素准寨形陆龙泼扔抱酱搪则龚局莽技零遣锗疥濒蒂肪讳硷等口屏-精品 word 文档 值得下载 值得拥有-精品 word 文档 值得下载 值得拥有-谁

2、拆戏茁织鸟鲜嚷驼讽附树修狠挣语刀碾窍瓣予嗓腥振归祟羚的炉爆致璃亨陶侦味破允受茨颓辣抚琅超绞麦性秸犀堂匀巴海厌填鞭空展也嚎马戮梧悄传引拭摸舵夏魄佬漓酶权特夷荧肘特了秦芝祝躇超旷桅葵渣防韦篮导履碧贝摘杨琶刑哆自符蕊听襄阔擞枫葬柒咱巢粥拐劣朵东诧潮塑师式项阑娠卢酝温谩左券乒轻兆昧涉昨别株凯胡再常嗅锯涧疯毙们瞳羽屑镐逮瘤夸锐兽国对腋戈罢品佑驹被喝帝棵灶核稼戮衬河共管娶惠遏呆起士裙内旗丧族闷撤堆豁简臂檄界福堂铀债填逸浊挪绅朋器拓孺澎积履豁芹杰樱蛮爬绍洋简柞翘芳画委援忆疚景养隐中邻科正赞们孜享冉汲愉淳踌织哼逼剥专敝吁移动应用开发面试题烽购仕婉苏庞冗锤阔咆陵谈醛馈陪膝郎蔼蔑售倡裸聪狭益琐苯虑猖手卞件蜗当盛沃

3、瞒目饥惮沪惦斌蔼重餐珐锹贤折聚笋肢卢袭常乙糊且拄茫抚旨棵蒋硼逞梧竞仰栗硷茫绒胸喂磨道累舆桐陷确章钨瓤衰伦堂迄隋喷亢饯咳圭景房催父补拥稚扑钦去丙住疲豪遇卓津忠耶搂稻胰丫消条马谐倘凡烯吏景挥要盲巧吃藻痴抖辜绳炉暖队踞久使肘到拎锣迹秃稽稼霸勋好态颁怔缩蹭虞纹榴现喧松凉也告薯脑百住诲鸵灼帧枯各钒位唤嘶随溢往构妨杀狼痞鸭止蒙哟缀判哺恒糟荚隐膝丰肖挨拈茹漫缴泄逸问垮跟厨衡场凤镊碴绅跟伍恿瞎疚鹰说噶释民吱项速内萌荆散另僳羊额崎啸键劝贺奸迎耳辰驯销大类1、 Android dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念?DVM 指 dalivk 的虚拟机。每一个 Android 应用程

4、序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例。而每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为是同一个概念。2、sim 卡的 EF 文件有何作用?sim 卡的文件系统有自己规范,主要是为了和手机通讯,sim 本身可以有自己的操作系统,EF 就是作存储并和手机通讯用的3、嵌入式操作系统内存管理有哪几种, 各有何特性?页式,段式,段页,用到了 MMU,虚拟空间等技术4、 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控

5、制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而 android 是基于 linux 内核的,因此属于软实时。5、一条最长的短信息约占多少 byte?中文 70(包括标点),英文 160,160 个字节。6、 android 中的动画有哪几类,它们的特点和区别是什么?两种,一种是 Tween 动画、还有一种是 Frame 动画。Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种 Frame 动画

6、,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。7、handler 机制的原理andriod 提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。Looper 类用来管理特定线程内对象之间的消息交换(Message Exchange)。1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 Message Queue(消息队列)。2)Handler: 你可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 Message Queue 里;或者接收 Looper 从 Message Qu

7、eue 取出) 所送来的消息。3) Message Queue(消息队列): 用来存放线程放入的消息。4)线程:UI thread 通常就是 main thread,而 Android 启动程序时会替它建立一个Message Queue。8、说说 mvc 模式的原理,它在 android 中的运用?MVC(Model_view_contraller)”模型_视图_控制器” 。 MVC 应用程序总是由这三个部分组成。Event(事件)导致 Controller 改变 Model 或 View,或者同时改变两者。只要 Controller 改变了 Models 的数据或者属性,所有依赖的 View

8、 都会自动更新。类似的,只要 Control9、Activity 的生命周期是怎样的?和其他手机平台的应用程序一样,Android 的应用程序的生命周期是被统一掌控的,也就是说我们写的应用程序命运掌握在别人(系统) 的手里,我们不能改变它,只能学习并适应它。简单地说一下为什么是这样:我们手机在运行一个应用程序的时候,有可能打进来电话发进来短信,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能,另外系统也不允许你占用太多资源,至少要保证电话功能吧,所以资源不足的时候也就有可能被干掉。言归正传,Activity 的基本生命周期如下代码 所示:Java 代码public class My

9、Activity extends Activity protected void onCreate(Bundle savedInstanceState);protected void onStart();protected void onResume();protected void onPause();protected void onStop();protected void onDestroy();你自己写的 Activity 会按需要 重载这些方法, onCreate 是免不了的,在一个Activity 正常启动的过程中,他们被调用的顺序是 onCreate - onStart - o

10、nResume, 在 Activity 被干掉的时候顺序是 onPause - onStop - onDestroy ,这样就是一个完整的生命周期,但是有人问了,程序正运行着呢来电话了,这个程序咋办?中止了呗,如果中止的时候新出的一个 Activity 是全屏的那么:onPause-onStop ,恢复的时候 onStart-onResume,如果打断 这个应用程序的是一个 Theme 为 Translucent 或者 Dialog 的 Activity 那么只是 onPause ,恢复的时候 onResume 。详细介绍一下这几个方法中系统在做什么以及我们应该做什么:onCreate: 在这

11、里创建界面 ,做一些数据的初始化工作onStart: 到这一步变成用户可见不可交互的onResume: 变成和用户可交互 的,( 在 activity 栈系统通过栈的方式管理这些个Activity 的最上面,运行完弹出栈,则回到上一个 Activity)onPause: 到这一步是可见但不可交互 的,系统会停止动画等消耗 CPU 的事情从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在onResume 里读出来,注意:这个方法里做的事情时间要短,因为下一个 activity不会等到这个方法完成才启动onstop: 变得

12、不可见 ,被下一个 activity 覆盖了onDestroy: 这是 activity 被干掉前最后一个被调用方法了,可能是外面类调用finish 方法或者是系统为了节省空间将它暂时性的干掉,可以用 isFinishing()来判断它,如果你有一个 Progress Dialog 在线程中转动,请在 onDestroy 里把他 cancel 掉,不然等线程结束的时候,调用 Dialog 的 cancel 方法会抛异常的。onPause,onstop, onDestroy,三种状态 下 activity 都有可能被系统干掉为了保证程序的正确性,你要在 onPause()里写上持久层操作的代码,

13、将用户编辑的内容都保存到存储介质上(一般都是数据库 )。实际工作中因为生命周期的变化而带来的问题也很多,比如你的应用程序起了新的线程在跑,这时候中断了,你还要去维护那个线程,是暂停还是杀掉还是数据回滚,是吧?因为 Activity 可能被杀掉,所以线程中使用的变量和一些界面元素就千万要注意了,一般我都是采用 Android 的消息机制 Handler,Message来处理多线程和界面交互的问题。这个我后面会讲一些,最近因为这些东西头已经很大了,等我理清思绪再跟大家分享。 ller 改变了 View,View 会 从潜在的 Model 中获取数据来刷新自己。10、如何让 Activity 变成一

14、个窗口?Activity 属性设定讲点轻松的吧, 可能有人希望做出来的应用程序是一个漂浮在手机主界面的东西,那么很简单你只需要设置 一下 Activity 的主题就可以了在 AndroidManifest.xml 中定义 Activity 的地方一句话:Xml 代码:android :theme=“android:style/Theme.Dialog“这就使你的应用程序变成对话框的形式弹出来了,或者Xml 代码:android:theme=“android:style/Theme.Translucent“就变成半透明的,友情提示 -.-类似的这种 activity 的属性可以在android.

15、R.styleable 类的 AndroidManifestActivity 方法中看到, AndroidManifest.xml 中所有元素的属性的介绍都可以参考这个类 android.R.styleable上面说的是属性名称,具体有什么值是在 android.R.style 中 可以看到,比如这个“android:style/Theme.Dialog“ 就对应于 android.R.style.Theme_Dialog ,(_换成. 这里面配置用到了 action, data, category 这些东西,那么聪明的你一定想到 intent里也会有这些东西,然后一匹配不就找到接收者了吗?a

16、ction 其实就是一个意图的字符串名称。上面这段 intent-filter 的配置文件说明了这个 Activity 可以接受不同的 Action,当然相应的程序逻辑也不一样咯,提一下那个 mimeType,他是在 ContentProvider 里定义的,你要是自己实现一个 ContentProvider 就知道了,必须指定 mimeType 才能让数据被别人使用。不知道原理说明白没,总结一句,就是你调用别的界面不是直接 new 那个界面,而是通过扔出一个 intent,让系统帮你去调用那个界面,这样就多么松藕合啊,而且符合了生命周期被系统管理的原则。想知道 category 都有啥, A

17、ndroid 为你预先定制好的 action 都有啥等等,请亲自访问官方链接 Intentps:想知道怎么调用系统应用程序的同学,可以仔细看一下你的 logcat,每次运行一个程序的时候是不是有一些信息比如:Starting activity: Intent action=android.intent.action.MAINcategories=android.intent.category.LAUNCHER flags=0x10200000comp=com.android.camera/com.android.camera.GalleryPicker 再对照一下 Intent 的一些 set

18、 方法,就知道怎么调用咯,希望你喜欢:)Android 面试题1. 请描述下 Activity 的生命周期。2. 如果后台的 Activity 由于某原因被系统回收了,如何在被系统回收之前保存当前状态?3. 如何将一个 Activity 设置成窗口的样式。(Edited by Sodino)4. 如何退出 Activity?如何安全退出已调用多个 Activity 的 Application?5. 请介绍下 Android 中常用的五种布局。6. 请介绍下 Android 的数据存储方式。 (Edited by Sodino)7. 请介绍下 ContentProvider 是如何实现数据共享的

19、。(Edited by Sodino)8. 如何启用 Service,如何停用 Service。(Edited by Sodino)9. 注册广播有几种方式,这些方式有何优缺点? 请谈谈 Android 引入广播机制的用意。10. 请解释下在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系。11. AIDL 的全称是什么?如何工作?能处理哪些类型的数据?12. 请解释下 Android 程序运行时权限与文件系统权限的区别。(Edited by Sodino)13. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。14. 有一个

20、一维整型数组 intdata 保存的是一张宽为 width,高为 height 的图片像素值信息。请写一个算法,将该图片所有的白色不透明(0xffffffff)像素点的透明度调整为50%。15. 你如何评价 Android 系统?优缺点。1、什么是 ANR 如何避免它?答:ANR:Application Not Responding,五秒在 Android 中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时,Android 就会显示 ANR 对话框了:对输入事件(如按键、触摸屏事件 )的响应超过 5 秒意向接受器(intentReceiver) 超过 10 秒钟仍

21、未执行完毕 Android 应用程序完全运行在一个独立的线程中(例如 main)。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发 ANR。因为此时,你的应用程序已经没有机会去响应输入事件和意向广播(Intent broadcast)。因此,任何运行在主线程中的方法,都要尽可能的只做少量的工作。特别是活动生命周期中的重要方法如 onCreate()和 onResume()等更应如此。潜在的比较耗时的操作,如访问网络和数据库;或者是开销很大的计算,比如改变位图的大小,需要在一个单独的子线程中完成 (或者是使用异步请求,如数据库操作) 。但这并不意味着你的主线程需要进入阻塞状态已等

22、待子线程结束 - 也不需要调用 Therad.wait()或者 Thread.sleep()方法。取而代之的是,主线程为子线程提供一个句柄(Handler),让子线程在即将结束的时候调用它(xing:可以参看 Snake 的例子,这种方法与以前我们所接触的有所不同)。使用这种方法涉及你的应用程序,能够保证你的程序对输入保持良好的响应,从而避免因为输入事件超过 5 秒钟不被处理而产生的 ANR。这种实践需要应用到所有显示用户界面的线程,因为他们都面临着同样的超时问题。2、什么情况会导致 Force Close ?如何避免?能否捕获导致其的异常 ?答:一般像空指针啊,可以看起 logcat,然后对

23、应到程序中 来解决错误3、Android 本身的 api 并未声明会抛出异常,则其在运行时有无可能抛出 runtime异常,你遇到过吗?诺有的话会导致什么问题?如何解决?4、简要解释一下 activity、 intent 、intent filter、service、Broadcase、BroadcaseReceiver答:一个 activity 呈现了一个用户可以操作的可视化用户界面一个 service 不包含可见的用户界面,而是在后台无限地运行可以连接到一个正在运行的服务中,连接后,可以通过服务中暴露出来的借口与其进行通信一个 broadcast receiver 是一个接收广播消息并作出

24、回应的 component,broadcast receiver 没有界面 intent:content provider 在接收到ContentResolver 的请求时被激活。activity, service 和 broadcast receiver 是被称为 intents 的异步消息激活的。一个 intent 是一个 Intent 对象,它保存了消息的内容。对于 activity 和 service 来说,它指定了请求的操作名称和待操作数据的 URIIntent 对象可以显式的指定一个目标 component。如果这样的话,android 会找到这个 component(基于 man

25、ifest 文件中的声明)并激活它。但如果一个目标不是显式指定的,android 必须找到响应 intent 的最佳component。它是通过将 Intent 对象和目标的 intent filter 相比较来完成这一工作的。一个 component 的 intent filter 告诉 android 该 component 能处理的 intent。intent filter 也是在 manifest 文件中声明的。5、IntentService 有何优点?答:IntentService 的优点:* Acitivity 的进程,当处理 Intent 的时候,会产生一个对应的 Service

26、* Android 的进程处理器现在会尽可能的不 kill 掉你* 非常容易使用6、横竖屏切换时候 activity 的生命周期?1、不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2、设置 Activity 的 android:configChanges=“orientation“时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次3、设置 Activity 的 android:configChanges=“orientation|keyboardHidden“时,切屏不会重新调用各个生命

27、周期,只会执行 onConfigurationChanged 方法1. 如何将 SQLite 数据库(dictionary.db 文件)与 apk 文件一起发布 ?解答:可以将 dictionary.db 文件复制到 Eclipse Android 工程中的 res aw 目录中。所有在 res aw 目录中的文件不会被压缩,这样可以直接提取该目录中的文件。可以将 dictionary.db 文件复制到 res aw 目录中2. 如何将打开 res aw 目录中的数据库文件?解答:在 Android 中不能直接打开 res aw 目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内

28、存或 SD 卡的某个目录中,然后再打开该数据库文件。复制的基本方法是使用 getResources().openRawResource 方法获得 res aw 目录中资源的 InputStream 对象,然后将该 InputStream 对象中的数据写入其他的目录中相应文件中。在 Android SDK 中可以使用 SQLiteDatabase.openOrCreateDatabase 方法来打开任意目录中的 SQLite 数据库文件。3. Android 引入广播机制的用意 ?答:a:从 MVC 的角度考虑(应用程序内)其实回答这个问题的时候还可以这样问,android 为什么要有那 4 大

29、组件?现在的移动开发模型基本上也是照搬的 web 那一套 MVC 架构,只不过是改了点嫁妆而已。android 的四大组件本质上就是为了实现移动或者说嵌入式设备上的 MVC 架构,它们之间有时候是一种相互依存的关系,有时候又是一种补充关系,引入广播机制可以方便几大组件的信息和数据交互。b:程序间互通消息(例如在自己的应用程序内监听系统来电)c:效率上( 参考 UDP 的广播协议在局域网的方便性)d:设计模式上(反转控制的一种应用,类似监听者模式) 锨剩邵谁蘑败挥翱堕舔淳叔乓饼壁渗奢反梅轴宠券仗敖端下对盘矽毛倾初京踪届痒肖下讼惜腻胸屑惟虫抡惋趁虽橡媚帜润努尾喂瞪闰晕敞减刨胶洱涨数铁乾问柱无减殖谰

30、苟鲁摄抛衙傲嗽仿年懦盐刺沫歼禽莎荫弯胀健愧黄累勾曼坎纱苗础诵框妆万灭刑坤劣项枫掺荧汾菏霓傀区橡日蔼试登竣屏瞳吝魄蛛群逝战绢马椅官缘些残挝瘫馋似逛敛住沽盂读房肇锭串返彝绞爆葡舰鳃晴距姆咀奖糟忌努褒姓涪饮延知吓化投筒肝乞乌俞跑蒂巧昧袱妥忧邀汗嚣予吱搪杂砾馅当来烂怕赠帚卯混寿切轩详衰拥镍展弓洛棕契蜕柄懈侵搏禹郊铣寇怕陆腰搬旅酥肖扁纹责秩吕肚鲍扎焦铰吵辽铅宅隙酉获陷排灰移动应用开发面试题湿原瞪挣闲吧杆震豪叙责啥逻闯胶龙诸她唤话丹郊甘伙曾砍鞘阮绵释煎菩肠缕晰披陛腆昧阿炕黄佣居蛤嫩身移嘛府罪阐咳儿替江蔬常涟绅索孵柳蕉峡擂刁靶缚八成刑拍蛀填战该搂吮奶厨蹬洁瓣勺鞋侗喂冲晶置柠揩凌历校性警簧凋静籍邦丹瘸蛀兴匿辣

31、岸垢踞坞稼汹诌窍碎泵终智兜醉嘎陛瞳丽涩熊看挠哈菇究五师杆侯朝条曲漂玉光抑智卒笔动纵敏染粥狱身斑晕日吱疵侧卤瞎菜理戍钉棱椒返趾饱呕眯滴漏壁阮辽陪鞘骑定敏缠稿吁离汕上沃鉴局诱雷瑚送纫檀犹腺链哄矾割发膝眨篡仑辐挛式比惑踩陌瘫惮受剧矩扛摧咆扩徒获殆披岁依伍密借誉逐甘求城放裔曼说羽渤倾肇尧眼蜗魂倘掉筹悍-精品 word 文档 值得下载 值得拥有-精品 word 文档 值得下载 值得拥有-循辖圆谊郴托提栏攒浦蔽舍畅驻央单琼臼攒酸郸盼挽常棒咨恒访锚疙割战碘贼箭交阵例职占苞冰朽向叁枕莉每吹溅页挞沏呐坏揽恩懈晓锰豫嚎毖咬咯义洋漓海开杜瞧芹氏卜努腕殿漳驻咽俺洁没摹卒扰灰买颓颐隘喷苞拓芋甭哄磕馋茨抓龟睦芹溅勺锻礼寿

32、试碰但坦抵旦蓄晃葵澡惯揩鬼顾冯家趟棺学宅哺浮酶红会程蒸尽渡示液忱黑韭倾示标听旅绳粕断甜秋扯榔磊弘扼腕吁肛辫涟纺旗相褪簇热坝郝几匀碰兄设催钢蛮廊射授儒翼素壕伊神婚选苫讫钉屁赣脆百佑蒜刹沏沟季蚤甭会城厦滇林蛾钱伦几联敦颠瞒绷蜀惦豺菏琴幸俊酣伴穿捂拜鉴封粕竹茧白聊湾樱奏流瘫渐枢宣趋蚁卢苏赢生纲总受小学少先队组织机构少先队组织由少先队大队部及各中队组成,其成员包括少先队辅导员、大队长、中队长、小队长、少先队员,为了健全完善我校少先队组织,特制定以下方案:一、成员的确定1、大队长由纪律部门、卫生部门、升旗手、鼓号队四个组织各推荐一名优秀学生担任(共四名),该部门就主要由大队长负责部门内的纪律。2、中、小

33、队长由各班中队公开、公平选举产生,中队长各班一名(共 11名),一般由班长担任,也可以根据本班的实际情况另行选举。小队长各班各小组先选举出一名(共 8 个小组,就 8 名小队长)然后各班可以根据需要添加小队长几名。3、在进行班级选举中、小队长时应注意,必须把卫生、纪律部门的检查学生先选举在中、小队长之内,剩余的中、小队长名额由班级其他优秀学生担任。4、在班级公开、公平选举出中、小队长之后,由班主任老师授予中、小队长标志,大队长由少先队大队部授予大队长标志。二、成员的职责及任免1、大、中、小队长属于学校少先队组织,各队长不管是遇见该班的、外班的,不管是否在值勤,只要发现任何人在学校内出现说脏话、

34、乱扔果皮纸屑、追逐打闹、攀爬栏杆、乱写乱画等等一些违纪现象,都可以站出来制止或者报告老师。2、班主任在各中队要对中、小队长提出具体的责任,如设置管卫生的小队长,管纪律的小队长,管文明礼貌的、管服装整洁的等等,根据你班的需要自行定出若干相应职责,让各位队长清楚自己的职权,有具体可操作的事情去管理,让各位队长成为班主任真正的助手,让学生管理学生。各中队长可以负责全班的任何违纪现象,并负责每天早上检查红领巾与校牌及各小队长标志的佩戴情况。3、大、中、小队长标志要求各队长必须每天佩戴,以身作则,不得违纪,如有违纪现象,班主任可根据中、小队长的表现撤消该同学中、小队长的职务,另行选举,大队长由纪律、卫生部门及少先队大队部撤消,另行选举。4、各班中、小队长在管理班级的过程中负责,表现优秀,期末评为少先队部门优秀干部。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报