50 Android Hacks阅读笔记】的更多相关文章

Hack 1.善用weightSum和layout_weight. 问题提出:尝试做一个button的宽度是父View的一半的效果. 关键词:weightSum = 1 , layout_weight=0.5 Hack 2.常用include和ViewStub 问题提出:如何减少复杂界面的绘制时间. 关键词:include复用,外部定义layout_width,layout_height:ViewStub占位,VISIBLE设置 Hack 3.自定义ViewGroup 问题提出:如何使用自定义V…
问题: 你需要更新应用的Gradle版本. 解决方案: 生成一个新的wrapper,或者直接修改属性文件(.properties). 讨论: Android Studio包含了一个Gradle的分发.当你创建一个新的android应用的时候,IDE自动为Unix和windows生成gradlew和gradlew.bat脚本.这些“wrapper”脚本允许你再没有安装gradle之前使用它.替代的,wrapper脚本自动下载并安装指定版本的gradle. 软件工程持续了很长时间,gradle定期发…
1.单位dp.dip.sp.pt.px.in.mm 这里引用StackOverFlow上的一个解答: px is one pixel. sp is scale-independent pixels. dip is Density-independent pixels.( dip == dp is ture)   Here is the difference dp Density-independent Pixels - an abstract unit that is based on the…
1.BaseActivity里面可以干什么 定义一个Context定义一个TAG 记录当前的Activity名字getClass().getSimpleName(); 2.Activity里面的几个重载方法 //完整生存周期 onCreate() 首次创建Activity时 onDestroy() 在Activity销毁之前 //可见生存周期 onStart() 在Activity由不可见变为可见时 onStop() 在Activiy由可见变为完全不可见时(如被一个新的Activity完全覆盖)…
问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的API向导,Java相关文档,工具文档等.Android Gradle插件相关的内容却非常的少. Android Gradle插件的主要文档在点击这里,包含了最新的信息: 用户向导非常有用,但是经常过期...(这也是这本书存在的意义): 另外一个Android 插件工具的网站是DSL Reference…
问题: 你想要提高Gradle的构建效率. 解决方案: 使用下面推荐的技术组合. 讨论: 首先,这里没有可以影响app表现的建议.有很多你可以做的事来提高app,很多都和Android的混淆工具有关.这节不是关于这个的,这节是提高构建本身效率的. 这节讨论那些可以添加到应用根目录下的gradle.properties文件里面的设置.如果你更喜欢全局设置,home目录下面的.gradle的子文件夹下增加一个gradle.properties文件. Gradle守护进程 Gradle守护进程是一个后…
问题: 你想要使用Google的Espresso测试Activity. 解决方案: 在Gradle配置里面增加Espresso,书写测试脚本. 讨论: Espresso测试库已经被添加进“Android Test Kit”项目,作为Google的Android测试工具.因为Espresso是一个Google的项目,并且专门为Android设计,有理由相信它在未来会成为Android测试提供更好的机制. 尽管这不是一本关于测试的书,搭建和运行Espresso测试适合一般的Gradle实践,所以一个…
问题: 你想要使用Robotium库测试activity. 解决方案: 增加Robotium依赖,编写自己的测试脚本. 讨论: Android Test Support Library提供类可以操作activity里的窗口部件,但是有更简单的方式操作Android UI.虽然这本书不是介绍测试的,但是可以很容易的将Robotium依赖增加到Gradle然后运行测试. Robotium项目被描述成“像Selenium,但是为了Android”.这是一个自动化测试框架,可以很方便的为Android…
问题: 你想要测试app的Android组件. 解决方案: 使用新的测试类实现JUnit风格的测试. 讨论: 测试像activities,services等的Android组件,需要将app部署到连接的设备或者模拟器上面.测试类基于JUnit,但是严格意义上不是单元测试.它们是集成测试还是功能测试,取决于你怎么使用. 因为看到这里的目的都是驱使部署的app正常运行并且UI正常改变,功能测试在这比较合适.你可以在文档中经常看到集成测试. Android Testing Support Librar…
问题: 你想要测试app中的非android部分. 解决方案: 可以使用Android Studio1.1里面增加的单元测支持和Android的Gradle插件. 讨论: ADT插件只支持集成测试,并且要求开发者创建一个单独的测试项目.转化到Android Studio和Gradle的其中一个好处就是支持在android项目内进行测试. 在AndroidStudio1.1之前和相关的Gradle插件,这些测试仍然被限制集成测试,意味着,你需要一个模拟器或者连接的设备才能进行测试.集成测试可以非常…