Android面试题-答案精编第四版.doc

上传人:豆**** 文档编号:23969134 上传时间:2022-07-03 格式:DOC 页数:210 大小:2.08MB
返回 下载 相关 举报
Android面试题-答案精编第四版.doc_第1页
第1页 / 共210页
Android面试题-答案精编第四版.doc_第2页
第2页 / 共210页
点击查看更多>>
资源描述

《Android面试题-答案精编第四版.doc》由会员分享,可在线阅读,更多相关《Android面试题-答案精编第四版.doc(210页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateAndroid面试题-答案精编第四版面试题精编版面试题精编版18Android 基础(2016.01.20更新)()18一、 Activity181、 什么是Activity?182、 请描述一下Activity 生命周期183、 常见的Activity类型有FragmentActivitiy,ListActivity,TabAcitivty等。请描述一下Activi

2、ty 生命周期194、 如何保存Activity的状态?195、 两个Activity之间跳转时必然会执行的是哪几个方法?206、 横竖屏切换时Activity的生命周期207、 如何将一个Activity设置成窗口的样式218、 如何退出Activity?如何安全退出已调用多个Activity的Application?219、 Activity的四种启动模式,singletop和singletask区别是什么?一般书签的使用模式是singletop,那为什么不使用singletask?2210、 Android中的Context,Activity,Appliction有什么区别?2311、

3、两个Activity之间传递数据,除了intent,广播接收者,content provider还有啥?2412、 Context是什么?24二、 Service251、 Service是否在main thread中执行, service里面是否能执行耗时的操作?252、 Activity怎么和Service绑定,怎么在Activity中启动自己对应的Service?253、 请描述一下Service的生命周期264、 什么是IntentService?有何优点?275、 说说Activity、Intent、Service是什么关系306、 Service和Activity在同一个线程吗307

4、、 Service里面可以弹吐司么318、 什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service?319、 在service的生命周期方法onstartConmand()可不可以执行网络操作?如何在service中执行网络操作?32三、 Broadcast Receiver321、 请描述一下BroadcastReceiver322、 在manifest和代码中如何注册和使用BroadcastReceiver333、 BroadCastReceiver的生命周期34四、 ContentProvider341、 请介绍下ContentPro

5、vider是如何实现数据共享的342、 请介绍下Android的数据存储方式353、 为什么要用ContentProvider?它和sql的实现上有什么差别?364、 说说ContentProvider、ContentResolver、ContentObserver之间的关系36五、 ListView361、 ListView如何提高其效率?362、 当ListView数据集改变后,如何更新ListView373、 ListView如何实现分页加载374、 ListView可以显示多种类型的条目吗385、 ListView如何定位到指定位置386、 如何在ScrollView中如何嵌入List

6、View387、 ListView中如何优化图片408、 ListView中图片错位的问题是如何产生的429、 如何刷新ListView中单个item的数据,不刷新整个ListView的数据?42六、 Intent421、 Intent传递数据时,可以传递哪些类型数据?422、 Serializable和Parcelable的区别433、 请描述一下Intent 和 IntentFilter44七、 Fragment461、 Fragment跟Activity之间是如何传值的462、 描述一下Fragment的生命周期473、 Fragment的replace和add方法的区别484、 Fra

7、gment如何实现类似Activity栈的压栈和出栈效果的?495、 Fragment在你们项目中的使用516、 如何切换fragement,不重新实例化52Android 高级()53一、 Android性能优化(11.9更新)531、 如何对Android应用进行性能分析532、 什么情况下会导致内存泄露613、 如何避免OOM异常644、 Android中如何捕获未捕获的异常675、 ANR是什么?怎样避免和解决ANR(重要)706、 Android线程间通信有哪几种方式(重要)727、 Devik进程,linux进程,线程的区别728、 描述一下android的系统架构?739、 an

8、droid应用对内存是如何限制的?我们应该如何合理使用内存?(2016.01.24)7410、 简述android应用程序结构是哪些?(2016.01.24)7511、 请解释下Android程序运行时权限与文件系统权限的区别?(2016.01.24)7912、 Framework工作方式及原理,Activity是如何生成一个view的,机制是什么?(2016.01.24)7913、 多线程间通信和多进程之间通信有什么不同,分别怎么实现?(2016.01.24)80二、 Android屏幕适配811、 屏幕适配方式都有哪些812、 屏幕适配的处理技巧都有哪些883、 dp和px之间的关系92三

9、、 AIDL921、 什么是AIDL以及如何使用922、 AIDL的全称是什么?如何工作?能处理哪些类型的数据?93四、 Android中的事件处理941、 Handler机制942、 事件分发机制953、 子线程发消息到主线程进行更新UI,除了handler和AsyncTask,还有什么?984、 子线程中能不能new handler?为什么?99五、 Android中的动画1001、 Android中的动画有哪几类,它们的特点和区别是什么1002、 如何修改Activity进入和退出动画1003、 属性动画,例如一个button从A移动到B点,B点还是可以响应点击事件,这个原理是什么?10

10、1六、 ContentObserver 内容观察者作用及特点101项目框架的使用()106一、 自我介绍106二、 开发中都使用过哪些框架、平台106三、 都使用过哪些自定义控件112四、 自定义控件:绘制圆环的实现过程113五、 自定义控件:摩天轮的实现过程119六、 自定义控件:可拖拽排序的GridLayout的实现过程120七、 流式布局的实现过程121八、 项目的流程123九、 项目中常见的问题(11.9更新)124十、 即时通讯是是怎么做的?141十一、 设计模式六大原则152十二、 第三方登陆154十三、 第三方支付156十四、 常见框架分析157Java 面试题(10.23更新)

11、()175一、 Java基础()1751、 Java中引用类型都有哪些1752、 什么是重载,什么是重写,有什么区别?1763、 String、StringBuffer和StringBuilder的区别1764、 关键字final和static是怎么使用的1775、 TCP/IP协议簇分哪几层?TCP、IP、XMPP、HTTP、分别属于哪一层?(2016.01.24)179二、 Java中的设计模式1801、 你所知道的设计模式有哪些1802、 单例设计模式1803、 工厂设计模式1814、 建造者模式(Builder)1865、 适配器设计模式1876、 装饰模式(Decorator)190

12、7、 策略模式(strategy)1918、 观察者模式(Observer)193-Android程序员面试题精编第四版又到秋季招聘好时节了,程序员面试考核一直都是热门话题,今年也不例外。 而对于Android程序员来说,面试时候什么最重要呢?绝对是技术,如今很多企业招聘Android工程师会不仅会给一份笔试考题,还会在面试中不断的问你技术问题,从Android基础到Android项目,难度不亚于一场高考,哪怕是技术过硬的Android程序员在面试+笔记的连番炮轰下,也会蒙圈。但是,从今天开始,各位Android程序员再也不用担心面试了,传智播客武汉校区秉承张孝祥老师“为千万人少走弯路而著书、

13、为中华软件之崛起而讲课。”教育理念,立志将武汉传智播客就业服务做到极致,为传智播客新老学员提供最优质的就业指导服务:除了最基本的简历指导,模拟面试指导,传智播客武汉校区更要为所有学员提供了最全面的面试题指导。 武汉传智播客就业指导服务部在2015年03月成立,并在着半年的时间,呕心沥血搜集了整理了武汉互联网行业常见的Android面试考题。并从Android06期开始做专业的面试题指导工作。本套面试题涵盖了传智播客Android就业班课程的所有重点内容概况,本套Android程序员面试题精编,从面试题到答案到代码,超实用,超强大,超全面。(图:09期Android就业班数据还在统计中)传智播客

14、武汉校区从Android06期开始,每一期的平均薪资都有2000-500元的增涨,在最高薪资上,也打造了月薪21K的好成绩。这样的成绩除了有学员们的共同努力,更有传智播客武汉校区就业指导老师的汗水。为了让所有Android程序员都能享受到面试题带给大家的福利,传智播客武汉校区就业服务部将把面试题全部分享公开到传智播客论坛,并承诺每半个月更新一次:同时,传智播客武汉校区就业部也需要大家的支持,如有专业的面试题提供,请在QQ上添加联系小舞老师(QQ:1641907557),想更更多的Android程序员分享学习资料,请添加QQ群: 193666738。面试题精编版17Android 基础(2016

15、.01.20更新)()17一、 Activity171、 什么是Activity?172、 请描述一下Activity 生命周期173、 常见的Activity类型有FragmentActivitiy,ListActivity,TabAcitivty等。请描述一下Activity 生命周期184、 如何保存Activity的状态?185、 两个Activity之间跳转时必然会执行的是哪几个方法?196、 横竖屏切换时Activity的生命周期197、 如何将一个Activity设置成窗口的样式208、 如何退出Activity?如何安全退出已调用多个Activity的Application?2

16、09、 Activity的四种启动模式,singletop和singletask区别是什么?一般书签的使用模式是singletop,那为什么不使用singletask?2110、 Android中的Context,Activity,Appliction有什么区别?2211、 两个Activity之间传递数据,除了intent,广播接收者,content provider还有啥?2312、 Context是什么?23二、 Service241、 Service是否在main thread中执行, service里面是否能执行耗时的操作?242、 Activity怎么和Service绑定,怎么在A

17、ctivity中启动自己对应的Service?243、 请描述一下Service的生命周期254、 什么是IntentService?有何优点?265、 说说Activity、Intent、Service是什么关系296、 Service和Activity在同一个线程吗297、 Service里面可以弹吐司么308、 什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service?309、 在service的生命周期方法onstartConmand()可不可以执行网络操作?如何在service中执行网络操作?31三、 Broadcast Recei

18、ver311、 请描述一下BroadcastReceiver312、 在manifest和代码中如何注册和使用BroadcastReceiver323、 BroadCastReceiver的生命周期33四、 ContentProvider331、 请介绍下ContentProvider是如何实现数据共享的332、 请介绍下Android的数据存储方式343、 为什么要用ContentProvider?它和sql的实现上有什么差别?354、 说说ContentProvider、ContentResolver、ContentObserver之间的关系35五、 ListView351、 ListVi

19、ew如何提高其效率?352、 当ListView数据集改变后,如何更新ListView363、 ListView如何实现分页加载364、 ListView可以显示多种类型的条目吗375、 ListView如何定位到指定位置376、 如何在ScrollView中如何嵌入ListView377、 ListView中如何优化图片398、 ListView中图片错位的问题是如何产生的419、 如何刷新ListView中单个item的数据,不刷新整个ListView的数据?41六、 Intent411、 Intent传递数据时,可以传递哪些类型数据?412、 Serializable和Parcelabl

20、e的区别423、 请描述一下Intent 和 IntentFilter43七、 Fragment451、 Fragment跟Activity之间是如何传值的452、 描述一下Fragment的生命周期463、 Fragment的replace和add方法的区别474、 Fragment如何实现类似Activity栈的压栈和出栈效果的?485、 Fragment在你们项目中的使用506、 如何切换fragement,不重新实例化51Android 高级()52一、 Android性能优化(11.9更新)521、 如何对Android应用进行性能分析522、 什么情况下会导致内存泄露603、 如何

21、避免OOM异常634、 Android中如何捕获未捕获的异常665、 ANR是什么?怎样避免和解决ANR(重要)696、 Android线程间通信有哪几种方式(重要)717、 Devik进程,linux进程,线程的区别718、 描述一下android的系统架构?729、 android应用对内存是如何限制的?我们应该如何合理使用内存?(2016.01.24)7310、 简述android应用程序结构是哪些?(2016.01.24)7411、 请解释下Android程序运行时权限与文件系统权限的区别?(2016.01.24)7812、 Framework工作方式及原理,Activity是如何生成

22、一个view的,机制是什么?(2016.01.24)7813、 多线程间通信和多进程之间通信有什么不同,分别怎么实现?(2016.01.24)79二、 Android屏幕适配801、 屏幕适配方式都有哪些802、 屏幕适配的处理技巧都有哪些873、 dp和px之间的关系91三、 AIDL911、 什么是AIDL以及如何使用912、 AIDL的全称是什么?如何工作?能处理哪些类型的数据?92四、 Android中的事件处理931、 Handler机制932、 事件分发机制943、 子线程发消息到主线程进行更新UI,除了handler和AsyncTask,还有什么?974、 子线程中能不能new

23、handler?为什么?98五、 Android中的动画991、 Android中的动画有哪几类,它们的特点和区别是什么992、 如何修改Activity进入和退出动画993、 属性动画,例如一个button从A移动到B点,B点还是可以响应点击事件,这个原理是什么?100六、 ContentObserver 内容观察者作用及特点100项目框架的使用()105一、 自我介绍105二、 开发中都使用过哪些框架、平台105三、 都使用过哪些自定义控件111四、 自定义控件:绘制圆环的实现过程112五、 自定义控件:摩天轮的实现过程118六、 自定义控件:可拖拽排序的GridLayout的实现过程11

24、9七、 流式布局的实现过程120八、 项目的流程122九、 项目中常见的问题(11.9更新)123十、 即时通讯是是怎么做的?140十一、 设计模式六大原则151十二、 第三方登陆153十三、 第三方支付155十四、 常见框架分析156Java 面试题(10.23更新)()174一、 Java基础()1741、 Java中引用类型都有哪些1742、 什么是重载,什么是重写,有什么区别?1753、 String、StringBuffer和StringBuilder的区别1754、 关键字final和static是怎么使用的1765、 TCP/IP协议簇分哪几层?TCP、IP、XMPP、HTTP、

25、分别属于哪一层?(2016.01.24)178二、 Java中的设计模式1791、 你所知道的设计模式有哪些1792、 单例设计模式1793、 工厂设计模式1804、 建造者模式(Builder)1855、 适配器设计模式1866、 装饰模式(Decorator)1897、 策略模式(strategy)1908、 观察者模式(Observer)192面试题精编版Android 基础(2016.01.20更新)()一、 Activity1、 什么是Activity? 四大组件之一,一般的,一个用户交互界面对应一个activitysetContentView() ,/ 要显示的布局 button.

26、setOnclickLinstener, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件. 我开发常用的的有FragmentActivitiyListActivity ,PreferenceActivity ,TabAcitivty等2、 请描述一下Activity 生命周期Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate onStart onResume onPause onStop onDestroy其实这些方法都是

27、两两对应的,onCreate创建与onDestroy销毁;onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause;如果界面有共同的特点或者功能的时候,还会自己定义一个BaseActivity. 进度对话框的显示与销毁 3、 常见的Activity类型有FragmentActivitiy,ListActivity,TabAcitivty等。请描述一下Activity 生命周期Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate onStart onResume onPause onStop on

28、Destroy其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause。4、 如何保存Activity的状态?Activity的状态通常情况下系统会自动保存的,只有当我们需要保存额外的数据时才需要使用到这样的功能。一般来说, 调用onPause()和onStop()方法后的activity实例仍然存在于内存中, activity的所有信息和状态数据不会消失, 当activity重新回到前台之后, 所有的改变都会得到保留。但是当系统内存不足时, 调用onPause()和onStop()方法后

29、的activity可能会被系统摧毁, 此时内存中就不会存有该activity的实例对象了。如果之后这个activity重新回到前台, 之前所作的改变就会消失。为了避免此种情况的发生, 我们可以覆写onSaveInstanceState()方法。onSaveInstanceState()方法接受一个Bundle类型的参数, 开发者可以将状态数据存储到这个Bundle对象中, 这样即使activity被系统摧毁, 当用户重新启动这个activity而调用它的onCreate()方法时, 上述的Bundle对象会作为实参传递给onCreate()方法, 开发者可以从Bundle对象中取出保存的数据,

30、 然后利用这些数据将activity恢复到被摧毁之前的状态。需要注意的是, onSaveInstanceState()方法并不是一定会被调用的, 因为有些场景是不需要保存状态数据的. 比如用户按下BACK键退出activity时, 用户显然想要关闭这个activity, 此时是没有必要保存数据以供下次恢复的, 也就是onSaveInstanceState()方法不会被调用. 如果调用onSaveInstanceState()方法, 调用将发生在onPause()或onStop()方法之前。Overrideprotected void onSaveInstanceState(Bundle out

31、State) / TODO Auto-generated method stubsuper.onSaveInstanceState(outState);5、 两个Activity之间跳转时必然会执行的是哪几个方法?一般情况下比如说有两个activity,分别叫A,B,当在A里面激活B组件的时候, A会调用 onPause()方法,然后B调用onCreate() ,onStart(), onResume()。 这个时候B覆盖了窗体, A会调用onStop()方法. 如果B是个透明的,或者是对话框的样式, 就不会调用A的onStop()方法。6、 横竖屏切换时Activity的生命周期此时的生命周

32、期跟清单文件里的配置有关系。1 不设置Activity的android:configChanges时,切屏会重新调用各个生命周期默认首先销毁当前activity,然后重新加载。2 设置Activity android:configChanges=orientation|keyboardHidden|screenSize时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。通常在游戏开发, 屏幕的朝向都是写死的。7、 如何将一个Activity设置成窗口的样式只需要给我们的Activity配置如下属性即可。 android:theme=android:sty

33、le/Theme.Dialog8、 如何退出Activity?如何安全退出已调用多个Activity的Application?1、通常情况用户退出一个Activity只需按返回键,我们写代码想退出activity直接调用finish()方法就行。2、记录打开的Activity:每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。/伪代码List lists ;/ 在application 全局的变量里面 lists = new ArrayList();lists.add(this);for(Activity activity: lists)activity.f

34、inish();lists.remove(this);3、发送特定广播:在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。/给某个activity 注册接受接受广播的意图 registerReceiver(receiver, filter)/如果过接受到的是 关闭activity的广播 就调用finish()方法 把当前的activity finish()掉 4、递归退出在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。5、 其实 也可以通过 intent的flag 来

35、实现intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)激活一个新的activity。此时如果该任务栈中已经有该Activity,那么系统会把这个Activity上面的所有Activity干掉。其实相当于给Activity配置的启动模式为SingleTop。9、 Activity的四种启动模式,singletop和singletask区别是什么?一般书签的使用模式是singletop,那为什么不使用singletask?singleTop 跟standard 模式比较类似。唯一的区别就是,当跳转的对象是位于栈顶的activity(应该可以理解为用户眼前

36、所 看到的activity)时,程序将不会生成一个新的activity实例,而是直接跳到现存于栈顶的那个activity实例。拿上面的例子来说,当Act1 为 singleTop 模式时,执行跳转后栈里面依旧只有一个实例,如果现在按返回键程序将直接退出。singleTask模式和singleInstance模式都是只创建一个实例的。在这种模式下,无论跳转的对象是不是位于栈顶的activity,程序都不会生成一个新的实例(当然前提是栈里面已经有这个实例)。这种模式相当有用,在以后的多activity开发中,常会因为跳转的关系导致同个页面生成多个实例,这个在用户体验上始终有点不好,而如果你将对应的

37、activity声明为singleTask 模式,这种问题将不复存在。在主页的Activity很常用10、 Android中的Context,Activity,Appliction有什么区别?相同:Activity和Application都是Context的子类。Context从字面上理解就是上下文的意思,在实际应用中它也确实是起到了管理上下文环境中各个参数和变量的总用,方便我们可以简单的访问到各种资源。 不同:维护的生命周期不同。Context维护的是当前的Activity的生命周期,Application维护的是整个项目的生命周期。使用context的时候,小心内存泄露,防止内存泄露,注意

38、一下几个方面:1.不要让生命周期长的对象引用activitycontext,即保证引用activity的对象要与activity本身生命周期是一样的。2.对于生命周期长的对象,可以使用application,context。3.避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化。11、 两个Activity之间传递数据,除了intent,广播接收者,content provider还有啥?1)利用static静态数据,public static成员变量2)利用外部存储的传输,例如 File 文件存储 SharedPreferences首选项 Sql

39、ite 数据库12、 Context是什么? 1、它描述的是一个应用程序环境的信息,即上下文。 2、该类是一个抽象(abstractclass)类,Android提供了该抽象类的具体实现类(ContextIml)。 3、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent,信息,等。二、 Service1、 Service是否在main thread中执行, service里面是否能执行耗时的操作?默认情况,如果没有显示的指servic所运行的进程, Service和activity是运行在当前app所在进程的main thr

40、ead(UI主线程)里面。service里面不能执行耗时的操作(网络请求,拷贝数据库,大文件 )特殊情况 ,可以在清单文件配置 service 执行所在的进程 ,让service在另外的进程中执行 2、 Activity怎么和Service绑定,怎么在Activity中启动自己对应的Service?Activity通过bindService(Intent service, ServiceConnection conn, int flags)跟Service进行绑定,当绑定成功的时候Service会将代理对象通过回调的形式传给conn,这样我们就拿到了Service提供的服务代理对象。在Acti

41、vity中可以通过startService和bindService方法启动Service。一般情况下如果想获取Service的服务对象那么肯定需要通过bindService()方法,比如音乐播放器,第三方支付等。如果仅仅只是为了开启一个后台任务那么可以使用startService()方法。3、 请描述一下Service的生命周期Service有绑定模式和非绑定模式,以及这两种模式的混合使用方式。不同的使用方法生命周期方法也不同。非绑定模式:当第一次调用startService的时候执行的方法依次为onCreate()、onStartCommand(),当Service关闭的时候调用onDest

42、ory方法。绑定模式:第一次bindService()的时候,执行的方法为onCreate()、onBind()解除绑定的时候会执行onUnbind()、onDestory()。上面的两种生命周期是在相对单纯的模式下的情形。我们在开发的过程中还必须注意Service实例只会有一个,也就是说如果当前要启动的Service已经存在了那么就不会再次创建该Service当然也不会调用onCreate()方法。一个Service可以被多个客户进行绑定,只有所有的绑定对象都执行了onBind()方法后该Service才会销毁,不过如果有一个客户执行了onStart()方法,那么这个时候如果所有的bind客

43、户都执行了unBind()该Service也不会销毁。Service的生命周期图如下所示,帮助大家记忆。4、 什么是IntentService?有何优点?我们通常只会使用Service,可能IntentService对大部分同学来说都是第一次听说。那么看了下面的介绍相信你就不再陌生了。如果你还是不了解那么在面试的时候你就坦诚说没用过或者不了解等。并不是所有的问题都需要回答上来的。一、IntentService简介IntentService是Service的子类,比普通的Service增加了额外的功能。先看Service本身存在两个问题:Service不会专门启动一条单独的进程,Service与

44、它所在应用位于同一个进程中;Service也不是专门一条新线程,因此不应该在Service中直接处理耗时的任务;二、IntentService特征会创建独立的worker线程来处理所有的Intent请求;会创建独立的worker线程来处理onHandleIntent()方法实现的代码,无需处理多线程问题;所有请求处理完成后,IntentService会自动停止,无需调用stopSelf()方法停止Service;为Service的onBind()提供默认实现,返回null;为Service的onStartCommand提供默认实现,将请求Intent添加到队列中;使用IntentService本人写了一个IntentService的使用例子供参考。该例子中一个MainActivity一个MyIntentService,这两个类都是四大组件当然需要在清单文件中注册。这里只给出核心代码:MainActivity.java:public void click(View view)Intent intent = new Intent(this, MyIntentService.class);intent.putExtra(start, MyIntentService);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁