上海育创整理的《进BAT公司必备的Android 开发宝典》

3年前 (2021-08-27)阅读324回复0
孔培娜
孔培娜
  • 管理员
  • 发消息
  • 注册排名3262
  • 经验值40
  • 级别管理员
  • 主题8
  • 回复0
楼主
印刷厂直印加工●彩页1000张只需要69元●名片5元每盒-更多产品印刷报价➦联系电话:138-1621-1622(微信同号)

  好的习惯和规范不仅可以有效地提高代码的可读性,也可以提高工作效率,甚至对于将来接手代码的小伙伴也是一件幸事ID嵌套样式问题。下面,题主通过查阅相关资料,整理出的 Andriod 开发的一些好习惯,当然,对于其他的程序员来说,也是可以借鉴的。

  一、Android编码规范

  1、 命名规范要规范,取应用包名的时候切忌取太容易重复的,如果同款手机已经有该包名,那么会因为签名不同而导致安装不上,这也怪中国安卓市场太多,无法像Google Play那样进行包名审核ID嵌套样式问题。Google 有自己的一套命名规范(多看看 Android 系统源码就明白了),也可以自行 Google 一下 Java (Android)命名规范,会由不少的博客介绍。

  2、java代码中不出现中文,最多注释中可以出现中文,注释一方面是帮助自己记忆,另一方面是团队协作中的一个规范ID嵌套样式问题。好的注释配合好的命名规范,可以省去很多沟通上的成本。

  注释至少要有如下几方面的内容:

  (1)该接口(或类)的作用ID嵌套样式问题。注意写的应该是作用,而不是你做了什么;

  (2)参数列表的各个参数说明;

  (3)返回值的说明;

  (4)如果有异常抛出ID嵌套样式问题,对抛出异常的说明;

  (5)如果注释是在类上的,留个联系方式吧,免得以后出了问题都找不到原作者ID嵌套样式问题。

  3、局部变量命名、静态成员变量命名:只能包含字母,单词除首字母为大写,其他字母都为小写ID嵌套样式问题。

  4、常量命名:只能包含字母和_,字母全部大写,单词之间用_隔开ID嵌套样式问题。

  5、layout中的id命名:命名模式为:view缩写_模块名称_view的逻辑名称

  view的缩写详情如下:

  LinearLayout:ll

  RelativeLayout:rl

  TextView:tv

  ImageView:iv

  ImageButton:ib

  Button:btn

  6、activity中的view变量命名

  命名模式为:view缩写+逻辑名称

  建议:如果layout文件很复杂ID嵌套样式问题,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view

  7、strings.xml中的id命名:

  命名模式:activity名称_功能模块名称_逻辑名称 activity名称_逻辑名称 common_逻辑名称

  strings.xml中ID嵌套样式问题,使用activity名称注释,将文件内容区分开来

  8、drawable中的图片命名

  命名模式:activity名称_逻辑名称/common_逻辑名称

  9、使用layer-list和selector ID嵌套样式问题。

  10、图片尽量分拆成多个可重用的图片ID嵌套样式问题。

  11、服务端可以实现的,就不要放在客户端ID嵌套样式问题。

  12、引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大ID嵌套样式问题。

  13、处理应用全局异常和错误ID嵌套样式问题,将错误以邮件的形式发送给服务端

  14、图片的 .9处理ID嵌套样式问题。

  15、使用静态变量方式实现界面间共享要慎重ID嵌套样式问题。

  16、Log(系统名称 模块名称 接口名称,详细描述)ID嵌套样式问题。

  17、单元测试(逻辑测试、界面测试)ID嵌套样式问题。

  18、不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突ID嵌套样式问题。

  19、activity中在一个View.OnClickListener中处理所有的逻辑ID嵌套样式问题。

  20、strings.xml中使用%1$s实现字符串的通配ID嵌套样式问题。

  21、styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中ID嵌套样式问题。

  22、如果多个Activity中包含共同的UI处理,那么可以提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只要继承它即可ID嵌套样式问题。

  23、使用button+activitgroup实现tab效果时,使用Button.setSelected(true),确保按钮处于选择状态,并使activitygroup的当前activity与该button对应ID嵌套样式问题。

  24、如果所开发的为通用组件,为避免冲突,将drawable/layout/menu/values目录下的文件名增加前缀ID嵌套样式问题。

  25、数据一定要效验ID嵌套样式问题,例如:

  字符型转数字型ID嵌套样式问题,如果转换失败一定要有缺省值;

  服务端响应数据是否有效判断ID嵌套样式问题。

  26、版本控制ID嵌套样式问题。就算是自己一个人写代码,版本控制也是有必要的,Git 也好,SVN 也好,都是有帮助的。版本控制一方面是对自己代码的一个备份,另一方面,如果想回返回历史版本也是极有帮助的,所以最好能够熟悉一下 Git 或者 SVN 的使用。

  27、制作名词表ID嵌套样式问题。Android 是围绕四大组件特别是 Activity 和 Service 进行开发的,但是如果项目庞大,有多个 Activity 存在,那么记住每一个 Activity 的类名是很难得,但是记住每一个 Activity 的功能却相对容易。这时名词表派上用场了,记录每一个模块、组件、甚至是每一个 Activity 的官方统一名称(比如,功能是作品列表的 Activity,名称就叫作品列表页,对应的类是 WorksListActivity),在沟通过程中,大家(包括测试人员等项目相关人员)统一说“作品列表页”。当时的初衷是解决测试团队的Bug 描述过于模糊(如果有多个列表页,测试人员往往会写“列表页XXX问题”)。

  28、内存管理ID嵌套样式问题。Android 虽然延续了 Java 的垃圾回收机制,但是并不意味 Android 应用程序就不会出现内存问题。在 Android 中引起内存开销过大的往往是 BitMap 对象。BitMap.java实际上是 Skia 引擎中对图片处理部分的 Java 层代码而已(真正工作的是 C++层代码,通过 JNI 封装,最后提供 Java 层的接口),那么你创建 BitMap 对象实际上是创建了两部分内存,一部分是 Java 层的,就是 BitMap对象,Java 的垃圾回收会在合适的时机回收这一部分内存。另一部分是 C++层面的,也就是通过 JNI 调用 C++层的代码分配的那一部分内存。Java 的垃圾回收是不会回收这一部分内存的,所以如果不手动释放的话就容易引起内存问题。

  二、Android性能优化

  1、嵌套样式问题,设置连接超时时间和响应超时时间

  嵌套样式问题。

  2、istview 性能优化

  (1)复用convertView

  在getItemView中,判断convertView是否为空,如果不为空,可复用ID嵌套样式问题。如果couvertview中的view需要添加listerner,代码一定要在if(convertView==null){}之外。

  (2)异步加载图片

  item中如果包含有webimageID嵌套样式问题,那么最好异步加载

  (3)快速滑动时不显示图片

  当快速滑动列表时(SCROLL_STATE_FLING),item中的图片或获取需要消耗资源的view,可以不显示出来;而处于其他两种状态(SCROLL_STATE_IDLE 和SCROLL_STATE_TOUCH_SCROLL),则将那些view显示出来ID嵌套样式问题。

  3.使用线程池ID嵌套样式问题。分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池,避免耗时任务阻塞线程池后,导致所有异步任务都必须等待。

  4.异步任务,分为核心任务和普通任务,只有核心任务中出现的系统级错误才会报错,异步任务的ui操作需要判断原activity是否处于激活状态ID嵌套样式问题。

  5.尽量避免static成员变量引用资源耗费过多的实例,比如Context ID嵌套样式问题。

  6.使用WeakReference代替强引用,弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存ID嵌套样式问题。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。

  7.超级大胖子Bitmap,及时的销毁(Activity的onDestroy时,将bitmap回收),设置一定的采样率,巧妙的运用软引用drawable对应resid的资源,bitmap对应其他资源ID嵌套样式问题。

  8.保证Cursor 占用的内存被及时的释放掉,而不是等待GC来处理ID嵌套样式问题。并且 Android明显是倾向于编程者手动的将Cursor close掉。

  9.线程也是造成内存泄露的一个重要的源头ID嵌套样式问题。线程产生内存泄露的主要原因在于线程生命周期的不可控。

  10.如果ImageView的图片是来自网络,进行异步加载ID嵌套样式问题。

  11.应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新ID嵌套样式问题。

  12、优化网络ID嵌套样式问题。如果没有网络连接,请让你的应用跳过网络操作;只在有网络连接并且无漫游的情况下更新数据。

  13、选择兼容的数据格式,把含有文本数据和二进制数据的请求全部转化成二进制数据格式请求ID嵌套样式问题。

  14、使用高效的转换工具,多考虑使用流式转换工具,少用树形的转换工具ID嵌套样式问题。

  15、为了更快的用户体验,请减少重复访问服务器的操作ID嵌套样式问题。如果可以的话,请使用framework的GZIP库来压缩文本数据以高效使用CPU资源。

  16、优化应用在前端的工作

  (1)如果考虑使用wakelocks,尽量设置为最小的级别ID嵌套样式问题。

  (2)为了防止潜在的bug导致的电量消耗ID嵌套样式问题,请明确指定超时时间;

  (3)启用 android:keepScreenOn属性ID嵌套样式问题。

  (4)除了系统的GC操作,多考虑手动回收Java对象,比如XmlPullParserFactory和BitmapFactoryID嵌套样式问题。还有正则表达式的Matcher.reset(newString)操作、StringBuilder.setLength(0)操作。

  (5)要注意同步的问题,尽管在主线程中是安全的ID嵌套样式问题。

  (6)在Listview中要多采用重复利用策略ID嵌套样式问题。

  (7)如果允许的话多使用粗略的网络定位而不用GPS,对比一下GPS需要1mAh(25s * 140 mA),而一般网络只用0.1mAh(2s * 180mA)ID嵌套样式问题。

  (9)确保注销GPS的位置更新操作,因为这个更新操作在onPause()中也是会继续的ID嵌套样式问题。当所有的应用都注销了这个操作,用户可以在系统设置中重新启用GPS而不浪费电量。

  (10)请考虑在大量数理运算中使用低精度变量并在用DisplayMetrics进行DPI任务时缓存变量值ID嵌套样式问题。

  17、优化工作在前台的应用

  (1)请确保service生命周期都是短暂的ID嵌套样式问题,因为每个进程都需要2MB的内存,而在前台程(2)序需要内存时也会重新启动;

  (3)保持内存的使用量不要太大;

  (4)如果要应用每30分钟更新一次ID嵌套样式问题,请在设备处于唤醒状态下进行;

  (5)Service在pull或者sleep状态都是不好的ID嵌套样式问题,这就是为什么在服务结束时要使用.

  (6)AlarmManager或者配置属性stopSelf()的原因ID嵌套样式问题。

  18、电池其它注意事项

  (1)在进行整体更新之前检查电池的状态和网络状态ID嵌套样式问题,等待最好的状态再进行大幅度装换操作;

  (2)让用户看到用电情况ID嵌套样式问题,比如更新周期,后台操作的时候;

  19、怎么找到布局显示问题ID嵌套样式问题?

  当我们为布局单独创建UI的时候,就是在创建滥用内存的App,它在UI中会出现可恶的延时ID嵌套样式问题。要实现一个流畅的、低内存占用的UI,第一步就是搜索你的应用找出潜在的瓶颈布局。使用Android SDK/tools/中自带的Hierarchy Viewer Tool工具。还有一个很好的工具就是Lint,它会扫描应用的源码去寻找可能存在的bug,并为控件结果进行优化。

  10、解决问题ID嵌套样式问题。如果布局显示结果发现了问题,你可以考虑简化布局结构。可以把LinearLayout类型转化成RelativeLayout类型,降低布局的层级结构。

  三、Android UI优化

  1、layout组件化,尽量使用merge及include复用ID嵌套样式问题。

  2、使用styles,复用样式定义ID嵌套样式问题。

  3、软键盘的弹出控制,不要让其覆盖输入框ID嵌套样式问题。

  4、数字、字母和汉字混排占位问题:将数字和字母全角化ID嵌套样式问题。由于现在大多数情况下我们的输入都是半角,所以 字母和数字的占位无法确定,但是一旦全角化之后,数字、字母的占位就和一个汉字的占位相同了,这样就可以避免由于占位导致的排版问题。

  5、英文文档排版:textview自动换行时要保持单词的完整性,解决方案是计算字符串长度,然后手动设定每一行显示多少个字母并加上‘n’ID嵌套样式问题。

  6、复杂布局使用RelativeLayout ID嵌套样式问题。

  7、自适应屏幕,使用dp替代pix ID嵌套样式问题。

  8、使用android:layout_weight或者TableLayout制作等分布局ID嵌套样式问题。

  9、使用animation-list制作动画效果ID嵌套样式问题。

  10、千万不要阻塞用户主线程ID嵌套样式问题。用户主线程就是 UI 线程,主要负责 UI 的绘制(除 SurfaceView 外,其他 View 对象都是需要在 UI 线程中进程操作的)。为了保证 App 的交互尽可能的流程,请不要在 UI 线程中进行耗时操作(文件读写、秒)。

  四、给Android开发工程师的建议

021yin.com /book/zh/v2

  2、勤做总结,推荐使用印象笔记,把一些懂的经验总结起来,把还不懂的文章挂里面,有时间就慢慢消化ID嵌套样式问题。

  3、定期code review,不断迭代,你总会发现一些不合理的代码,或者需要优化的地方ID嵌套样式问题。

021yin.com ,stormzhang,但总归来说,去Android官网或者参考一份Java API文档虽说枯燥,但熟悉之后,你会有更大的进步ID嵌套样式问题。另外,善用 Google 。

021yin.com/u/levi/p/imouto-host/git

  5、如想更深入了解可阅读珍藏许久的文章《Android应用程序开发以及背后的设计思想深度剖析》ID嵌套样式问题。

  6、如果你公司没有强大的测试团队,发布应用前最好把应用放到测试平台去测测,比如云测之类的ID嵌套样式问题。

  7、不要重复制造轮子ID嵌套样式问题。这个适用于代码层面以及业务层面。

  四、应用层的开发

  1、写代码前先在本子上画好大概的模块图,类图,能和同事讨论下最好ID嵌套样式问题。

  2、使用开源代码务必搞懂主要实现方式,以便填坑ID嵌套样式问题。

  3、应用内的资源要统一管理,如线程,缓存,网络,数据库,配置,设备事件监听等等,以便性能分析和维护ID嵌套样式问题。

  4、合理使用设计模式,做好UI之间,和业务以及数据层的解耦非常必要,以便应付产品汪(褒义词)的各种变化ID嵌套样式问题。

  5、不要总是TODO,因为翔留下就留下了,还得写新的翔,等后来的童鞋来收拾,被人骂骂也不好ID嵌套样式问题。

  6、没事多看下Github,Android程序基本可以用一个个开源库搭积木搞出来,当然业务除外ID嵌套样式问题。也可以看看其他平台的库和各种框架,不要把自己局限在Android上。

  7、代码风格团队要统一ID嵌套样式问题。

  8、提高基本素质,做程序员,而不是Android程序员ID嵌套样式问题。

  9、使用StrictMode来检查UI线程中可能潜在的费时操作ID嵌套样式问题。

  10、使用一些特殊的工具如Systrace或者Traceview来寻找在你的应用中的瓶颈ID嵌套样式问题。

  11、用进度条向用户展示操作进度ID嵌套样式问题。

  12、如果初始化操作很费时,请展示一个欢迎界面ID嵌套样式问题。

  13、优化设备的电池寿命ID嵌套样式问题。如果应用很费电,请不要责怪用户卸载了你的应用。对于电池使用来说,主要费电情况如下:

  (1)更新数据时经常唤醒程序;

  (2)用EDGE或者3G来传递数据;

  (3)文本数据转换,进行非JIT正则表达式操作ID嵌套样式问题。

  五、其他的一些 Android 开发建议:

  1、严格把控生命周期(Activity、Service、ContentProvider 等)ID嵌套样式问题。在每一个生命周期事件中,明确应该做什么不应该做什么是很有必要的,不然也会容易造成各种莫名其妙的问题(比如 onCreate 中使用了 onResume 中才初始化的对象)。

  2、在使用 XML 文件进行 UI 布局时,应该尽量减少 Layout 的嵌套层级ID嵌套样式问题。Layout 的过度嵌套会造成渲染时资源开销过大的问题。

  PS: XML 也是代码ID嵌套样式问题,注意维护好 XML 的可读性!

  3、资源文件的使用,资源文件包括图片、字符串、尺寸、颜色等等ID嵌套样式问题。在使用尺寸资源的时候应该尽量使用像素无关的单位,比如 dp 和 sp。而字符串资源(比如 Button 上显示的名称)也应该尽可能的抽离出来,使用 res/value 下的xml 文件进行维护。一方面方便日后管理,另一方面方便国际化。

  4、多线程以及线程池的使用ID嵌套样式问题。前面说过应该尽量避免在主线程中执行耗时操作,那么多线程就变得很有必要。对于 Java 来说,线程的创建与销毁是非常占用资源的,线程的滥用(随手 new Thread 等)会造成 App 整体性能的下降。Java 提供了Executors的线程池方案,而 Android 自身也提供了AsyncTask 这样的异步任务方案(实际上也是线程池)。

  5、Java 的权限控制机制ID嵌套样式问题。Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制:

  (1)包访问权限;

  (2)Public访问权限;

  (3)Private访问权限;

  (3)Protected访问权限;

  访问权限的合理使用可以有效地隐藏实现,避免将不必要的数据或接口暴露出来ID嵌套样式问题。

  6、 final 和 static 关键字的合理使用ID嵌套样式问题。很多人觉得这是很基础的东西,但是 final 和 static 关键字的合理使用能够有效提升代码的执行效率,而不合理使用则后患无穷。

  7、 Android 设备的内存资源是极度珍贵的,合理的使用、回收内存也是一种好的编程习惯ID嵌套样式问题。Java 对象的引用类型会影响到垃圾回收对象的时机。Java 有强引用、 软引用、 弱引用、虚引用,以及 Android 增加的 Lru 内存管理。建议题主了解一下这四种引用类型的特点以及 Lru 内存管理的具体实现。

  8、 接口和抽象类ID嵌套样式问题。这是老生常谈的话题了,但却是永恒的话题。接口和抽象类的合理使用,可以增加代码的可维护性和扩展性。接口和抽象类也是各种设计模式的基石。

  9、软件设计的六大设计原则ID嵌套样式问题,即

  (1)针对接口编程ID嵌套样式问题,不针对实现编程

  (2)单一职责原则

  (3)开放封闭原则

  (4)里氏代换原则

  (5)迪米特法则

  (6)合成聚合复用原则

  10、统一项目的编码格式(推荐使用 UTF-8)ID嵌套样式问题。如果多人协作,这种举措显得尤为重要。由此引申出来的另外一个规范就是,规范统一命名风格,即团队中使用相同的命名风格。

  11、TextView(往往 TextView 派生子类同样适用)调用 setText 方法设置一个 int 型的数据ID嵌套样式问题,千万要将该值转为 String,否则在某些设备中它会默认去查询 R 文件中定义的资源

  12、使用友盟分享 SDK,需要执行分享的 Activity 请不要为该 Activity 设置android:process属性ID嵌套样式问题。比如你的 App 运行在 com.codingfish.test 进程,需要产生分享动作的Activity 设置 android:proces=":com.codingfish.hello" ,那么新浪微博就会出现你设置的分享内容没有显示的问题。该 Bug 已经提交给友盟的技术人员,但是很久没有得到修复。

  13、上线之前一定要使用正式签名打包ID嵌套样式问题。某朋友公司 Android 的应用上架之前,负责打包上线的童鞋(新人,老人已离职,只有这一个Android)没有签名的概念,直接将 Debug 签名的 Apk 投放到渠道了,到现在还有一批设备没有替换回来。

  14、在 Activity 中尽可能少的创建 Handler 对象,创建一个主线程 Handler,一个后台 HandlerThread 就可以了ID嵌套样式问题。

  15、使用线程的地方尽量不要 new Thread,而是使用 AsyncThread ID嵌套样式问题。

  16、 onCreate(Bundle savedInstanceState) 切记将super.onCreate(savedInstanceState);放在一切业务的前面ID嵌套样式问题。

  17、 创建了四大组件一定记得要在 AndroidManifest 文件中声明(当然 BroadcastReceiver 可以动态注册)ID嵌套样式问题。

  18、 为Activity声明系统配置变更事件 系统配置变更事件是指转屏,区域语言发生变化,屏幕尺寸发生变化等等,如果Activity没有声明处理这些事件,发生事件时,系统会把Activity杀掉然后重启,并尝试恢复状态,Activity有机会通过onSaveInstanceState()保存一些基本数据到Bundle中,然后此Bundle会在Activity的onCreate()中传递过去ID嵌套样式问题。虽然这貌似正常,但是这会引发问题,因为很多其他的东西比如Dialog等是要依赖于具体Activity实例的。所以这种系统默认行为通常都不是我们想要的。

  为了避免这些系统默认行为ID嵌套样式问题,就需要为Activity声明这些配置,如下二个是每个Activity必须声明的:

  activity android:configChanges="orientation|keyboardHidden"

  几乎所有的Activity都要声明如上ID嵌套样式问题,为什么Android不把它们变成Default的呢?

  19、 尽量使用Android的API 这好像是废话ID嵌套样式问题,在Android上面开发不用Android API用什么?因为Android几乎支持Java SE所有的API,所以有很多地方Android API与Java SE的API会有重复的地方,比如说对于文件的操作最好使用Android里面Context封装的API,而不要直接使用File对象:

  Context.openFileOutput(String); // no File file = new File(String)

  原因就是API里面会考虑到Android平台本身的特性;再如,少用Thread,而多使用AsyncTask等ID嵌套样式问题。

  20、 要考虑到Activity和进程被杀掉的情况 如了通常情况退出Activity外,还有Activity因其他原因被杀的情况,比如系统内存过低,系统配置变更,有异常等等,要考虑和测试这种情况,特别是Activity处理重要的数据时,做好的数据的保存ID嵌套样式问题。

  21、语言要简洁ID嵌套样式问题。有些语言真的很啰嗦,中文或英文很简短就能表达的事情到了其他语言就变的死长死长的,所以如果是wrap_content就可能把其他控制挤出可视范围; 如果是指定长度就可能显示不全。也要注意特殊语言比如那些从右向左读的语言。

  PS:有代码洁癖的,很注重代码质量的程序员,可以详尽阅读 SonarQube 关于JAVA编码的规则:Sonar@OSC - 代码质量分析平台,如果条件允许,自己配置一下,每周通过Sonar运行一下自己的代码,以提高代码质量ID嵌套样式问题。

  22、不要用四大组件去实现接口ID嵌套样式问题。一是组件的对象都比较大,实现接口比较浪费,而且让代码更不易读和理解;另外更重要的是导致多方引用,可能会引发内存泄露。

  23、 用getApplication()来取Context当参数 对于需要使用Context对象作为参数的函数,要使用getApplication()获取Context对象当参数,而不要使用this,除非你需要特定的组件实例!getApplication()返回的Context是属于Application的,它会在整个应用的生命周期内存在,远大于某个组件的生命周期,所以即使某个引用长期持有Context对象也不会引发内存泄露ID嵌套样式问题。

  24、主线程只做UI控制和Frameworks回调相关的事ID嵌套样式问题。附属线程只做费时的后台操作。交互只通过Handler。这样就可以避免大量的线程问题。

  25、Frameworks的回调不要做太多事情仅做必要的初始化,其他不是很重要的事情可以放到其他线程中去做,或者用Handler Schedule到稍后再做ID嵌套样式问题。

  26、要考虑多分辨率 至少为hdpi, mdpi, ldpi准备图片和布局ID嵌套样式问题。元素的单位也尽可能的使用dip而不要用px。

  27、利用Android手机的硬键 几乎所有的Android手机都有BACK和MENU,它们的作用是返回和弹出菜单,所以就不要再在UI中设计返回按扭和菜单按扭ID嵌套样式问题。很多优秀的应用如随手记和微信都有返回键,他们之所以有是因为他们都是从iOS上移植过来的,为了保存体验的一致,所以也有了返回和菜单。但这不够Android化,一个纯正的Android是没有必须重复硬键的功能的。

  PS:多看看官方的 APIDEMO,多读一下Android 上的内容ID嵌套样式问题。

  28、如果你的IDE是EclipseID嵌套样式问题,用好这几个快捷键,爽歪歪哦:

  (1)CTRL + SHIFT + O

  (2)ALT + SHIFT + M

  (3)ALT + SHIFT + S

  (4)CTRL + O

  (5)CTRL + /

  (6)ALT + /

  (7)CTRL + D

  (8)CTRL + K

  (9)ALT + → 和 ALT + 左箭头

  (10)CTRL + SHIFT + X 和 CTRL + SHIFT + Y

  (11)F5、F6、F7、F8

  (12)F11

  (13)CTRL + M

  六、程序员的工作习惯

  1、一定要写笔记ID嵌套样式问题。你可以不写博客,但是一定要有笔记。好记性不如烂笔头。当然对于程序员来说,一个电子的笔记远远好与纸质的笔记。

  2、写博客ID嵌套样式问题。博客是附带品.但是你只有去写博客了,才知道别人的博客是怎么写出来了。博客也是你和别人交流技术的东西.别人可以从你文章中学习东西,你可以与别人交流.

  PS:调查发现,写博客的程序员工资要搞那么5000+ID嵌套样式问题。

  3、尽量阅读英文文档,而不是有问题就百度.有问题问Strack Overflow ID嵌套样式问题。

  4、不要等别人告诉你这东西怎么用,那东西怎么学,只有自己去提前研究了,你才能更胜一筹ID嵌套样式问题。

  5、保持不断学习ID嵌套样式问题。

  文/漫步、张明云、captain(知乎作者)

0
0
收藏0
回帖

上海育创整理的《进BAT公司必备的Android 开发宝典》 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息