我已经看了看文档与摇篮建设,但我仍然不知道什么之间的差异compileSdkVersion,并targetSdkVersion为.
它只是说:
该
compileSdkVersion属性指定编译目标.
那么,"汇编目标"是什么?
我看到两种可能的解释方式:
compileSdkVersion在构建应用程序所使用的编译器的版本,同时targetSdkVersion是"API级别的应用程序的目标".(如果是这种情况,我认为compileSdkVersion必须大于或等于targetSdkVersion?我看到之前已经问过这个问题,但是一个答案只引用了文档,这对我来说是不清楚的.
这是app我从res/menu/main.xml文件中看到的命名空间的示例
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud)
app命名空间的用途是什么?它是"标准"Android XML命名空间吗?是否有相同的值选项可用于放置在两个不同命名空间中的相同属性(例如app:showAsAction和android:showAsAction).
来自文档:
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
即,如果属性是相反的,上面示例中的行是否意味着其他内容:
android:showAsAction="never"
Run Code Online (Sandbox Code Playgroud)
它几乎看起来可能是某种"子类化"机制,但我似乎无法app从Google/Android源代码中找到关于命名空间的任何真实文档.
xml android xml-namespaces android-layout android-tools-namespace
有效的Java Item 3(使用私有构造函数或枚举类型强制执行singleton属性)注意到:
使类成为单例可能会使测试其客户端变得困难,因为除非它实现了作为其类型的接口,否则不可能将模拟实现替换为单例.
出于测试目的,为什么实例化单个单例实例并测试其API是不够的?这不是客户会消费的吗?引用似乎意味着测试单例将涉及"模拟实现",但为什么这是必要的?
我已经看到了各种"解释",或多或少地重述了上面的引用.有人可以进一步解释这一点,最好用代码示例吗?
对于我的Django项目中的第三方(jquery)代码,我采用了静态文件的目录结构,将所有第三方文件放在一个单独lib的子目录中.更具体地说,这就是我的目录树目前的样子:
myproject/
myproject/
static/
css/
my-own-stylesheet.css
lib/
bobs-stylesheet.css
joes-stylesheet.css
img/
my-own-image.png
lib/
bobs-image.png
joes-image.png
js/
my-own-javascript.js
lib/
bobs-javascript.js
joes-javascript.js
Run Code Online (Sandbox Code Playgroud)
这意味着要完成两件事:1.将我自己的资产与第三方资产分开.2.分离css,img和js文件.
当然,只要路径都是正确的,这样就可以了,但实际上是否存在Django项目中第三方材料的位置约定?
我也考虑过了
myproject/
myproject/
static/
css/
img/
js/
lib/
bob/
css/
img/
js/
joe/
css/
img/
js/
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可能过度思考这个问题,但对此有"最佳实践"吗?