精华内容
下载资源
问答
  • 人脸识别中的默认分类器,主要用于人脸图片中的人脸轮廓的识别。
  • Sublime英文汉化包资源(Default.sublime-package)
  • defaultConfig——安卓gradle

    千次阅读 多人点赞 2019-09-08 22:46:22
    一、前言 我们在安卓开发中,编译的任务是由 gradle 来负责的。...话不多说,今天分享的是在我们的每个模块下(应用级)build.gradle 文件中,android 下的 defaultConfig 属性 二、defaultConfig ...

    目录
    一、前言
    二、defaultConfig
    1、搞清楚几个问题
    2、defaultConfig 的存在形式
    3、defaultConfig 中属性的意义
    4、defaultConfig 中方法的意义
    三、写在最后

    一、前言

    我们在安卓开发中,编译的任务是由 gradle 来负责的。但很多时候我们进入 build.gradle 文件中,有种似懂非懂的感觉,所以小盆友总结并分享自己学习到的点滴。

    话不多说,今天分享的是在我们的每个模块下(应用级)build.gradle 文件中,android 下的 defaultConfig 属性

    二、defaultConfig

    1、搞清楚几个问题

    在分享 defaultConfig 前,我们需要先弄清楚几个问题,这几问题之前一直困扰着小盆友,所以顺便记录和分享下。

    (1)build.gradle 最终是以什么形式存在。
    (2)为什么 每个模块下的 build.gradle 文件的最开始都有 apply plugin: 'com.android.library' 这样一行代码。

    自动生成完的 build.gradle 格式如下所示

    apply plugin: 'com.android.library'
    
    android {
    	// 省略一些配置
    }
    
    dependencies {
    	// 省略依赖
    }
    

    这个文件最终会被转换为 org.gradle.api.Project 类(其类的关系如下图)。

    Project
    ExtensionAware
    PluginAware
    • 第一行代码的 apply 会调用 PluginAwarevoid apply(Map<String, ?> options); 方法,进行设置插件;
    • 接下来的 android,并不是 gradle 中所带的,而是第一行代码插件所带来。具体会映射为 com.android.build.gradle.AppExtension 类;
    • 最后的 dependencies,会调用 Projectvoid dependencies(Closure configureClosure); 方法;

    2、defaultConfig 的存在形式

    defaultConfig 会被映射为 DefaultConfig 类,其继承结构图如下

    DefaultConfig
    BaseFlavor
    DefaultProductFlavor
    CoreProductFlavor
    BaseConfigImpl
    ProductFlavor
    BaseConfig
    DimensionAware

    3、defaultConfig 中属性的意义

    下面是官方给出的文档,我们以 3.3 的版本进行讲解,其他版本可能有些许的小改动。

    defaultConfig官方文档 传送门

    3.1 applicationId

    • 类型:String
    • 描述:应用的id,即我们常说的包名。我们都知道 android studio 是以 applicationId 作为包名,以前使用 eclipse 时,则另当别论了。
    • 使用方法:
    defaultConfig {
        // applicationId 应用的包名
        // applicationId 会替换 AndroidManifest.xml 中的 manifest 标签下 package 的 value
        applicationId "com.zinc.gradlestudy"
    	......省略其他配置
    }
    

    3.2 applicationIdSuffix

    • 类型:String
    • 描述:会追加在上面 applicationId 字符串的后面,形成最终的包名
    • 使用方法:
    defaultConfig {
    	// 若此时 applicationId 为 com.zinc.gradlestudy,则最终会形成 com.zinc.gradlestudy.debug 的包名
        applicationIdSuffix "debug"
    	......省略其他配置
    }
    

    3.3 externalNativeBuild

    • 类型:ExternalNativeBuildOptions
    • 描述:这里我们设置 ndk 编译过程的一些参数。分为 cmake 和 ndkBuild 两个参数。
    • 使用方法:
    defaultConfig {
        externalNativeBuild {
            ndkBuild {
                // Passes an optional argument to ndk-build.
                arguments "NDK_MODULE_PATH+=../../third_party/modules"
            }
            // For ndk-build, instead use the ndkBuild block.
            cmake {
                 // Passes optional arguments to CMake.
                 arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang"
    
                 // Sets a flag to enable format macro constants for the C compiler.
                 cFlags "-D__STDC_FORMAT_MACROS"
    
                 // Sets optional flags for the C++ compiler.
                 cppFlags "-fexceptions", "-frtti"
    
                 // Specifies the library and executable targets from your CMake project
                 // that Gradle should build.
                 targets "libexample-one", "my-executible-demo"
             }
       }
    }
    

    cmake 具体参数 传送门
    ndkBuild 具体参数 传送门

    3.4 dimension

    • 类型:String
    • 描述:当前的配置所属的 “风味维度”,这个参数在这里的并没有实际的意义,在打多渠道包的时候,会进行更多的分享。
    • 使用方法:
    defaultConfig {
    	dimension 'debug'
    	......省略其他配置
    }
    

    3.5 consumerProguardFiles

    • 类型:List< File >
    • 描述:这个属性只作用于我们创建的 library 中,包括我们以aar形式导入的 library ,或是直接创建的 library。它的作用是,负责该 library 被进行编译时的混淆规则,我们在 主App 的模块下则可以不用再管理各个 library 的混淆规则,会直接使用各个 library 的混淆规则文件。
    • 使用方法:
    defaultConfig {
    	consumerProguardFiles 'consumer-rules.pro'
    	......省略其他配置
    }
    
    // 因为该属性是一个 List<File> 类型,如果需要多个文件配置,则如下所示
    defaultConfig {
    	consumerProguardFiles 'consumer-rules.pro','zincPower-rules.pro'
    	......省略其他配置
    }
    

    3.6 javaCompileOptions

    • 类型:JavaCompileOptions
    • 描述:配置编译时 java 的一些参数,例如我们使用 annotationProcessor 时所需要的参数。
    • 使用方法:
    defaultConfig {
    	javaCompileOptions {
            annotationProcessorOptions{
    			arguments = []
    			classNames ''
    			....
    		}
    	}
    	......省略其他配置
    }
    

    JavaCompileOptions 可以配置的具体参数,请进传送门

    3.7 manifestPlaceholders

    • 类型:Map<String, Object>
    • 描述:配置可以在 AndroidManifest.xml 中替换的参数,一般用于多渠道中使用,不会在 defaultConfig 中使用。
    • 使用方法:

    这里想配置我们应用的logo,则可以在 gradle 中使用下面这段

    defaultConfig {
    	manifestPlaceholders = [APP_LOGO_ICON: "@mipmap/ic_logo"]
    }
    

    然后在 AndroidManifest.xml 中使用,使用 ${你配置的变量名}

    // 在 application 中使用替换,还需要多添加 tools:replace 这一标签,将我们需要替换的名称写上,例如这里的 android:icon
    <application
        android:allowBackup="true"
        android:icon="${APP_LOGO_ICON}"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon">
    ......
    

    3.8 multiDexEnabled

    64K 引用限制问题官方文档 传送门

    • 类型:Boolean
    • 描述:是否开启分包。因为安卓中方法索引值为两个字节,四位十六进制的一个数值,即[0, 0xffff],所以最大方法数为65536个。一旦超出了,就需要进行分包,所以我们就需要开启这个参数。
    • 使用方法:
    defaultConfig {
    	multiDexEnabled true
    	...
    }
    
    // 添加依赖
    dependencies {
    	// 如果使用的为 AndroidX,则使用下面这个导入
    	// implementation 'androidx.multidex:multidex:2.0.1'
    	// 如果不使用 AndroidX,则使用下面这段
        compile 'com.android.support:multidex:1.0.3'
    }
    

    有两种开启 MultiDex 方法:

    // 第一种:让你应用的 Application 继承 MultiDexApplication。
    public class MyApplication extends MultiDexApplication {
    
    }
    
    // 第二种:重写应用的 Application 方法 attachBaseContext
    public class MyApplication extends Application {
    
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
        }
    }
    

    最后别忘了在 AndroidManifest.xml 中使用我们在上面的 Application。

    3.9 multiDexKeepFile

    • 类型:File
    • 描述:将我们需要的类打包进主包,即 classs.dex。我们在第 3.8 小点,分享到使用了多包处理,有时我们需要将一些主要的类打包进主包,则可以使用该属性。
    • 使用方法:
    defaultConfig {
    	multiDexKeepFile file('multidex-config.txt')
    	...
    }
    

    multidex-config.txt 中的书写则如下,每一个文件则为一行

    com/example/MyClass.class
    com/example/TestClass.class
    

    3.10 multiDexKeepProguard

    • 类型:File
    • 描述:将我们需要的类打包进主包,和第 3.9 点的功能相同,区别在于写法。
    • 使用方法:
    defaultConfig {
    	multiDexKeepFile file('multidex-config.pro')
    	...
    }
    

    multidex-config.pro 中的写法如下

    // 将会保留所有的在com.example package的类
     -keep class com.example.** { *; }
    

    3.11 ndk

    • 类型:NdkOptions
    • 描述:用于abi过滤
    • 使用方法:
      进行如下配置,编译出来的 Apk包只包含armeabi-v7a,不会包含其他的架构,例如 “X86”。
    defaultConfig {
    	// ndk中,目前只有 abiFilter 一个属性,所以 ndk 目前来说只用于 abi 的过滤
    	ndk {
            abiFilter 'armeabi-v7a'
        }
    	...
    }
    

    NdkOptions的具体可配参数见官方文档 传送门

    3.12 proguardFiles

    • 类型:List
    • 描述:配置混淆规则文件,但我们一般不会在这里使用该配置,而会在 buildTypes 中结合 minifyEnabled 一起使用。

    3.12 signingConfig

    • 类型:SigningConfig
    • 描述:配置签名配置,但一般不会在这里进行配置,而会在 buildTypes 中进行配置,这里先不过多解释。

    3.13 vectorDrawables

    • 类型:VectorDrawablesOptions
    • 描述:配置矢量图的参数
    • 使用方法:
      VectorDrawablesOptions 中只有两个参数,为 generatedDensitiesuseSupportLibrary。分别的用处如下
    defaultConfig {
        vectorDrawables {
            // 如果 minSdkVersion 小于 21,只生成mdpi的png
            generatedDensities 'mdpi'
    
            // 设置为 true,会忽略 generatedDensities ,会加入svg兼容包,不会再产生png
            useSupportLibrary true
        }
    }
    

    矢量图的用法,可以看小盆友的另一片文章

    3.14 versionCode

    • 类型:Integer
    • 描述:应用当前的版本值。和 versionName 的区别在小盆友看来,versionCode 是给程序员看的,versionName 是给产品经理和用户看的。
    • 使用方法:
    defaultConfig {
        versionCode 1000
        ......
    }
    

    3.15 versionName

    • 类型:String
    • 描述:应用版本。我们通常所说的该应用的版本是“1.2.0”,则是由这个值配置的。
    • 使用方法:
    defaultConfig {
    	versionName "1.0.0"
    	.....
    }
    

    3.16 versionNameSuffix

    • 类型:String
    • 描述:追加在第 3.15 小点“版本”的后缀
    • 使用方法:
    defaultConfig {
    	// 如果 versionName "1.0.0" ,则最终的版本名为 1.0.0.test
    	versionNameSuffix ".test"
    	.....
    }
    

    4、defaultConfig 中方法的意义

    4.1 buildConfigField(type, name, value)

    • 描述:我们可以在 BuildConfig 类中添加值,最终会在 BuildConfig 中添加如下一行代码。
    // 值的注意的是 value 的值是原样放置,我们通过使用方法一节来了解
    <type> <name> = <value>
    
    • 使用方法:
    defaultConfig {
        // 可以通过 BuildConfig 进行获取
        buildConfigField('String', 'name', '"zinc"')
        buildConfigField('int', 'age', '26')
    	.....
    }
    

    最终会生成如下图的配置,我们可以通过下面代码进行获取

    String name = BuildConfig.name;
    int age = BuildConfig.age;
    


    值的一提的是,我们设置 String 类型的参数时,需要加上 “” 双引号(如例子中的name属性)。切记!

    4.2 consumerProguardFile(proguardFile)

    • 描述:和上面分享的 3.5 小点的属性 consumerProguardFiles 是一样的作用。只是这里只能设置一个 混淆文件。
    • 使用方法:
    defaultConfig {
    	consumerProguardFile('consumer-rules.pro')
    }
    

    4.3 consumerProguardFiles(proguardFiles)

    • 描述:和上面分享的 3.5 小点的属性 consumerProguardFiles 是一样的作用,而且也是多个混淆文件。
    • 使用方法:
    defaultConfig {
    	consumerProguardFiles('consumer-rules.pro', 'zincPower-rules.pro',.....)
    }
    

    4.4 maxSdkVersion(maxSdkVersion)

    • 描述:设置应用的最高支持版本,一般我们不会进行设置
    • 使用方法:
    defaultConfig {
    	// 最高支持28版本
    	maxSdkVersion 28
    }
    

    4.5 minSdkVersion(minSdkVersion)

    • 描述:设置应用的最低支持版本
    • 使用方法:
    defaultConfig {
    	// 最低支持19版本
    	minSdkVersion 19
    }
    

    4.6 missingDimensionStrategy(dimension, requestedValue)

    • 相似方法:missingDimensionStrategy(dimension, requestedValues) 区别在于第二个参数可以设置多个风味。
    • 参数说明:
      (1)dimension:维度
      (2)requestedValue:风味(如果为 requestedValues 则是风味列表)
    • 描述:忽略在 Library 中的渠道设置,即维度(dimension)和风味(flavor),如果不进行忽略,在进行引入的时候会无法进行。
    • 使用方法:

    我们的项目结构如下

    zinclibrarybuild.gradle 中编写了如下渠道配置

    // 创建 风味维度
    flavorDimensions('zinc', 'handsome')
    // 创建产品风味
    productFlavors {
        minApi13{
            dimension 'zinc'
        }
        minApi23{
            dimension 'zinc'
        }
        x86{
            dimension 'handsome'
        }
        arm64{
            dimension 'handsome'
        }
    }
    

    此时如果直接在 appbuild.gradle 中添加依赖,同步时便会出错

    dependencies {
    	...忽略其他依赖
        implementation project(":zinclibrary")
    }
    

    所以我们需要在 appbuild.gradle 中使用这个参数进行忽略 library 中带来的维度和风味,即使用如下代码

    defaultConfig {
        missingDimensionStrategy 'zinc', 'minApi13', 'minApi23'
        missingDimensionStrategy 'handsome', 'x86', 'arm64'
    }
    

    4.7 resConfig(config)

    • 描述:保留的资源配置。
    • 使用用法:
    defaultConfig {
    	// 这样我们编译出的apk中,只有 “默认” 和 “中文zh” 两种资源
    	resConfig "zh"
    }
    

    4.8 resConfigs(config)

    • 描述:保留的资源配置,和 resConfig 的区别在于,resConfigs 保留多个资源。
    • 使用用法:
    defaultConfig {
    	// 这样我们编译出的apk中,只有 “默认” 、 “中文zh” 和 “英文en” 两种资源
    	resConfigs "zh","en"
    }
    

    4.9 resValue(type, name, value)

    • 描述:添加 value 资源
    • 使用用法:
    defaultConfig {
    	// 添加至 res/value,通过 R.string.age 获取
        resValue('string', 'age', '12year')
    }
    

    4.10 targetSdkVersion(targetSdkVersion)

    • 描述:应用的目标版本。说明我们已经对指定的版本进行了测试,在开发过程中可以使用至该版本的API,否则会被提示无法使用。如果不设置,则和 minSdkVersion 的值保持一致。
    • 使用用法:
    defaultConfig {
    	targetSdkVersion 28
    }
    

    三、写在最后

    Gradle 的配置文件看起来好像挺乱,其实是因为我们没有进行整体的梳理,所以这段时间,小盆友会不断的进行整理并结合在项目中用到的分享出来。如果喜欢的话请给我一个赞,并关注我吧。文章中如有写的不妥的地方,请评论区与我讨论吧,共同进步。

    展开全文
  • es6 export default命令

    千次阅读 2018-02-04 22:20:49
    export default命令 从前面的例子可以看出,使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。但是,用户肯定希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。 为了...

    export default命令

    从前面的例子可以看出,使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。但是,用户肯定希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。

    为了给用户提供方便,让他们不用阅读文档就能加载模块,就要用到export default命令,为模块指定默认输出。

     
    1. // export-default.js
    2. export default function () {
    3. console.log('foo');
    4. }

    上面代码是一个模块文件export-default.js,它的默认输出是一个函数。

    其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。

     
    1. // import-default.js
    2. import customName from './export-default';
    3. customName(); // 'foo'

    上面代码的import命令,可以用任意名称指向export-default.js输出的方法,这时就不需要知道原模块输出的函数名。需要注意的是,这时import命令后面,不使用大括号。

    export default命令用在非匿名函数前,也是可以的。

     
    1. // export-default.js
    2. export default function foo() {
    3. console.log('foo');
    4. }
    5. // 或者写成
    6. function foo() {
    7. console.log('foo');
    8. }
    9. export default foo;

    上面代码中,foo函数的函数名foo,在模块外部是无效的。加载的时候,视同匿名函数加载。

    下面比较一下默认输出和正常输出。

     
    1. // 第一组
    2. export default function crc32() { // 输出
    3. // ...
    4. }
    5. import crc32 from 'crc32'; // 输入
    6. // 第二组
    7. export function crc32() { // 输出
    8. // ...
    9. };
    10. import {crc32} from 'crc32'; // 输入

    上面代码的两组写法,第一组是使用export default时,对应的import语句不需要使用大括号;第二组是不使用export default时,对应的import语句需要使用大括号。

    ES6 export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export default命令只能使用一次。所以,import命令后面才不用加大括号,因为只可能对应一个方法。

    本质上,export default就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字。所以,下面的写法是有效的。

     
    1. // modules.js
    2. function add(x, y) {
    3. return x * y;
    4. }
    5. export {add as default};
    6. // 等同于
    7. // export default add;
    8. // app.js
    9. import { default as foo } from 'modules';
    10. // 等同于
    11. // import foo from 'modules';

    正是因为export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句。

     
    1. // 正确
    2. export var a = 1;
    3. // 正确
    4. var a = 1;
    5. export default a;
    6. // 错误
    7. export default var a = 1;

    上面代码中,export default a的含义是将变量a的值赋给变量default。所以,最后一种写法会报错。

    同样地,因为export default本质是将该命令后面的值,赋给default变量以后再默认,所以直接将一个值写在export default之后。

     
    1. // 正确
    2. export default 42;
    3. // 报错
    4. export 42;

    上面代码中,后一句报错是因为没有指定对外的接口,而前一句指定外对接口为default

    有了export default命令,输入模块时就非常直观了,以输入 lodash 模块为例。

     
    1. import _ from 'lodash';

    如果想在一条import语句中,同时输入默认方法和其他接口,可以写成下面这样。

     
    1. import _, { each, each as forEach } from 'lodash';

    对应上面代码的export语句如下。

     
    1. export default function (obj) {
    2. // ···
    3. }
    4. export function each(obj, iterator, context) {
    5. // ···
    6. }
    7. export { each as forEach };

    上面代码的最后一行的意思是,暴露出forEach接口,默认指向each接口,即forEacheach指向同一个方法。

    export default也可以用来输出类。

     
    1. // MyClass.js
    2. export default class { ... }
    3. // main.js
    4. import MyClass from 'MyClass';
    5. let o = new MyClass();
    展开全文
  • 不少用户反馈升级或重置Windows 10后,遇到了一个陌生的账户defaultuser0,无法得知其密码并且无法登入Windows 10,这到底是怎么回事呢?本文将针对这个问题,给大家分享一些方法和技巧,来帮助大家快速重新访问...

    文章来源:https://www.reneelab.com.cn/windows10-defaultuser0-solutions.html

    一、为何Windows 10 出现defaultuser0账户?

    有用户在微软官网上下载了Windows 10系统镜像,安装后遇到一个陌生的账户defaultuser0。此外,还有用户表示Windows 10 重置后,电脑出现错误提示“你的电脑将在1分钟后自动重启”。再次打开电脑后,也出现了陌生账户defaultuser0。
    defaultuser0账户

    defaultuser0是安装系统时创建和使用的临时账户,不属于任何一个用户,也不具有任何配置文件。当它出现在登录屏幕时,需要用户输入密码,但大家并不知道它的密码是什么。从微软技术支持团队那里了解到,defaultuser0账户经过内部加密,我们无法得知明确的密码。实际上,我们可以通过创建新账户,以及尝试禁用defaultuser0或重置其密码以解决该问题。

    虽然defaultuser0账号被认为是无害的,但是它的存在有可能会带来各种麻烦。如果defaultuser0出现在登录屏幕上,用户无法访问Windows 10的时候,可以使用以下方法来快速登入Windows 10。

    二、遇到defaultuser0账号且无法登入Windows 10怎么办?

    方法1:使用都叫兽系统救援工具创建新账户、禁用账户或移除账户密码

    步骤一:下载并安装都叫兽™系统救援软件。点击此处下载

    步骤二:接下来将外接U盘通过USB端口连接PC电脑,运行都叫兽™系统救援软件,之后在“第一步:选择创建方法”里勾选【创建一个拯救U盘】选项。(注:在执行此操作之前,请确保已经将U盘里的重要文件保存在其他位置,因为操作过程将删除拯救U盘中的所有数据。)

    接下来根据系统类型选择【x64】或【x86】,点击【现在下载】按钮下载ISO文件,文件下载完成之后点击【创建拯救USB】按钮,在USB启动盘创建完之后再点击【弹出USB】按钮即可。
    创建拯救盘

    步骤三: 启动目标电脑并在BIOS中修改开机顺序 – 使电脑从拯救装置启动。

    将您通过都叫兽™系统救援所建立的密码重置盘连接到电脑,并在启动目标电脑后,进入BIOS,将开机顺序相应调整为CD-ROM或Removable Devices开机。成功在BIOS中修改开机顺序后,请保存BIOS设定并重新开机。
    BIOS开机顺序

    步骤四:选择密码重置功能PassNow。
    密码重置功能

    步骤五:点击“创建新用户”来建立一个新的管理员账户,即可快速访问你的电脑。
    创建新用户

    创建的管理员账户名为“Renee”,密码是“123456789”。该账户有系统管理员权限,你也可以通过该账户直接修改目标帐户的密码。

    此外,你还可以直接点击目标账户defaultuser0,选择停用该账户,或者选择清除其密码。重新启动电脑并登入Windows 10后,你可以继续选择删除它或为其设置密码。
    清除账户密码

    方法2:启动安全模式并创建新账户

    此方法需要具备管理员权限才可操作。如果没有管理员权限,或者该方法不能马上解决你的问题,建议使用系统救援工具,仅需5分钟即可重新访问Windows 10。

    步骤1: 按住Shift键的同时,单击登录屏幕右下方的电源按钮,然后单击“重启”,进入Windows 10 启动选项。

    步骤2:在每个选项界面中,依次选择:疑难解答 — 高级选项 — 启动设置。最后,在“启动设置”的页面上,单击“重启”
    点击重启
    步骤3:重启后,按下F6或者6来启用“带命令提示符的安全模式”。
    安全模式
    步骤4:出现“管理员”界面时,输入以下指令:net user 你的账户名 /add,然后按下“Enter”即可。如果新创建的账号需要添加密码,你可以直接输入此指令:net user 你的账户名 你的密码 /add。
    管理员账户
    步骤5:命令成功完成后便可退出,然后重启电脑。现在你可以用新创建的账号登录Windows 10了。
    登录Windows账户

    三、如何增强defaultuser0账户的安全性?(若保留该账户)

    使用都叫兽™系统救援工具基本上能安全快速地重新掌控电脑了。在重新登录Windows 10后,如果你想继续保留defaultuser0账号,可以选择为defaultuser0账户设置密码,或者隐藏该账户,这样做有助于增强账号的安全性、保护电脑中的个人信息。

    选项1:为defaultuser0账户设置密码

    ① 右键点击“此电脑”,选择“管理”,再点击“本地用户和组”—“用户”。

    ② 右键点击defaultuser0,选择“设置密码”,然后单击“继续”。

    ③ 输入新的密码,单击“确定”即可完成密码设置。

    温馨提示:需要管理员权限才可进行此操作。如果没有管理员权限,建议创建管理员账户再进行。
    创建管理员账户

    选项2:隐藏defaultuser0账户

    通过命令提示符隐藏defaultuser0账户,使该账号不再出现于登录屏幕上。

    ① 在搜索内容框输入“cmd”,然后右键单击cmd程序,选择“以管理员身份运行”。

    注意:如果没有管理员权限,建议创建管理员账户再进行。
    命令提示符
    ② 在命令提示符中输入:net user defaultuser0 /Active:no,按Enter键。
    命令行
    ③ 在下次启动电脑时,defaultuser0账号将不再出现于登录屏幕上。

    展开全文
  • fs.default.name和fs.defaultFS

    万次阅读 2019-03-08 09:49:38
    在hadoop的配置文件 core-site.xml中,需要设置fs.default.name或fs.defaultFS ,具体应该使用哪一个,会造什么样的错误,需要在实际操作中去验证。官网有下面这段描述 We need to have only one of the two (fs....

        在hadoop的配置文件 core-site.xml中,需要设置 fs.default.name 或 fs.defaultFS ,具体应该使用哪一个,会造什么样的错误,需要在实际操作中去验证。官网有下面这段描述

    We need to have only one of the two (fs.default.name or fs.defaultFS, and the former is deprecated). If both are present then NN HA will be enabled/disabled based on what is read first.

    Following is description from NN HA in Apache docs:

    fs.defaultFS - the default path prefix used by the Hadoop FS client when none is given.
    Optionally, you may now configure the default path for Hadoop clients to use the new HA-enabled logical URI. If you used "mycluster" as the nameservice ID earlier, this will be the value of the authority portion of all of your HDFS paths. This may be configured like so, in your core-site.xml file:

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
    </property>

    从文档中可以看出,使用 fs.default.name 还是 使用 fs.defaultFS ,要首先判断是否开启了 NN 的HA (namenode 的 highavaliable),如果开启了nn ha,那么就用fs.defaultFS,在单一namenode的情况下,就用 fs.default.name , 如果在单一namenode节点的情况使用 fs.defaultFS ,系统将报

     ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
    java.lang.IllegalArgumentException: Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority.
            at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:471)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:461)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.getRpcServerAddress(NameNode.java:512)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.loginAsNameNodeUser(NameNode.java:612)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:632)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:811)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:795)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1488)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1554)
    INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
    INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 

     

    展开全文
  • C++中的 =default和=delete

    万次阅读 多人点赞 2019-04-12 23:47:26
    C++11允许添加“=default”说明符到函数声明的末尾,以将该函数声明为显示默认构造函数。这就使得编译器为显示默认函数生成了默认实现,它比手动编程函数更加有效。 例如,每当我们声明一个有参构造函数时,编译器...
  • 在使用openpyxl读取包含中文的.xlsx文件时,报错“Workbook contains no default style, apply openpyxl’s default ”, 解决方法: def read_excel_with_file_name(file_name): with warnings.catch_warnings...
  • default 这个关键字,说实话平时见到的场景很少,使用的也不多。 印象中有用到的时候,1.switch case 这个就是用在最后,所有条件都不匹配,默认进行处理; 2.自定义注解会有用到,给予一个默认值; 3. 就是咱们...
  • java8中的default关键字

    万次阅读 多人点赞 2018-05-05 09:56:29
    在学习集合代码时发现在Iterable接口中使用了default关键字。 default关键字介绍 default是在java8中引入的关键字,也可称为Virtual extension methods——虚拟扩展方法。是指,在接口内部包含了一些默认的...
  • el-tree中default-expanded-keys属性中放入的数组如果改变了,它不会根据这个数组的改变而改变。而是把每个数组中的key都添加进去。 同理,default-checked-keys也有这个问题,但这个可以用组件的...
  • 详细分析Java8中default关键字

    千次阅读 2020-06-01 23:16:11
    default关键字:与public、private等都属于修饰符关键字,与其他两个不同之处在于default关键字大部分都应用于接口。 二、出现的理由 总所周知在使用接口的时候,很多人都会遇到一个很尴尬的事情,在实现某个接口...
  • export default 和 export 区别

    千次阅读 2018-01-17 22:44:10
    export default 和 export 区别:1.export与export default均可用于导出常量、函数、文件、模块等2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用3.在...
  • SQL DEFAULT

    千次阅读 2017-12-26 13:33:54
    DEFAULT 约束用于向列中插入默认值。  如果没有规定其他的值,那么会将默认值添加到所有的新记录。   CREATE TABLE 时的 SQL DEFAULT 约束  在"Persons"表创建时在"City"列上创建DEFAULT...
  • 最近做了一个导出功能,代码如下 import request from 'request-... export default class Form {  // 导出  @post('/export')  public async export(ctx) {  const params = JSON.parse(ctx.requ...
  • sudo rosdep init 出现 ERROR: cannot download default sources list from: 针对目前安装ROS出现一下指令的错误 sudo rosdep init ERROR: cannot download default sources list from: ...
  • sudo rosdep init ERROR: cannot download default sources list from: 解决方法: 进入/etc/hosts文件目录, 2、进入到hosts 文件:root@ros-vm2:/etc# gedit hosts,在末尾添加151.101.84.133 raw....
  • default-route-advertise(OSPF)

    千次阅读 2020-10-23 02:08:28
    default-route-advertise命令用来将缺省路由通告到普通OSPF区域。 undo default-route-advertise命令用来取消通告缺省路由到普通OSPF区域。 缺省情况下,在普通OSPF区域内的OSPF设备不产生缺省路由。 命令格式 ...
  • 升级到3.2后,官方文档中的建议是运行以下代码: python -Wa manage.py test 您应该会看到配置DEFAULT_AUTO_FIELD的警告和提示: WARNINGS: blog.BlogPost: (models.W042) Auto-created primary key used when not ...
  • UserWarning: Workbook contains no default style, apply openpyxl's default warn("Workbook contains no default style, apply openpyxl's default") 解决方法,导入如下warning模块,发现又报如下错误: ...
  • 在Java8里面接口里面有个default关键字可以使用,表示在接口里面声明的方法,可以有默认的实现。具体使用如下: 假设现在,系统里面的缓存类都实现了下面的接口。这个接口就一个方法,resetCache。每个实现都需要...
  • switch中default的用法

    万次阅读 多人点赞 2018-05-21 14:36:44
    default什么时候会执行?default的位置对执行结果有影响吗?default只有在case匹配失败的时候才会执行 int a=4; switch (a){ case 1: System.out.println("1"); break; case 2:...
  • 建表时default ''和 default null 区别

    万次阅读 2019-10-05 08:13:14
    default '' 指的是 默认空字符 default null 指的是 默认值为null null和 '' 是有区别的 mysql设计表时 建议不要用default NULL string类型的default '' int类型的default 0 转载于:...
  • Java8 默认方法 default method

    万次阅读 多人点赞 2017-08-07 15:58:00
    参考文章:...Java 8 引入了新的语言特性——默认方法(Default Methods)。 Default methods enable new functionality to be added to the interfaces of libraries and ens
  • 默认随机数生成器是 std::default_random_engine 类型别名定义的随机无符号整数的通用源。这个别名表示实现是被定义的,选择的模板类型参数需要能够为用户提供他们满意的序列。下面是一种生成 default_random_engine...
  • C++11新特性之 “=default” 、“=delete”

    万次阅读 多人点赞 2018-07-18 00:03:42
    1、 =default 和=delete 概述 任何事物的出现都必然有着其出现的理由,伴随着每一个新的概念产生都会带来一系列的便利和价值。C++在不断的演变与发展,与此同时,伴随着许多新的特性和功能产生。=default、=delete...
  • 解决default activity not found办法大全

    万次阅读 多人点赞 2019-08-26 14:08:37
    最近在项目中遇到一个问题,就是以前用android studio能正常打开的工程,今天突然报default activity not found错误,该错误导致app那块显示一个红叉,无法直接launch app,可以build工程产生apk文件,但是不能用...
  • C语言switch中default的使用

    千次阅读 2021-01-20 20:13:33
    在使用switch中,我们经常会看到switch语句中的defaultdefault表示当前面的case值都不是目标是是就执行default,同时大多数情况下,我们看到default都在最后位置进行判断,那么default只能放在最后位置吗?...
  • 理解Interface中default关键字

    千次阅读 2019-03-15 10:16:46
    无意之间看到了一段在接口中使用default的代码,有点意思。 接口之间的继承是可以继承多个的。 default关键字修饰的方法就是初始化的抽象方法。或者说是一个已经实现了的抽象方法,不需要再在其他implement接口位置...
  • IntelliJ IDEA 官方Default 快捷键

    千次阅读 2020-10-20 16:19:57
    IntelliJ IDEA Default 快捷键 背景:之前一直使用idea但是快捷键还是使用的继承eclipse快捷键方式,今天被同事吐槽,说忘记eclipse吧,得改成idea了,还是尝试改变下哈哈 网络上有总结好的各种操作系统的ide快捷键...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,313,157
精华内容 1,725,262
关键字:

default