system 订阅
system是一个C/C++的函数。windows操作系统下system () 函数详解主要是在C语言中的应用,system函数需加头文件后方可调用。 展开全文
system是一个C/C++的函数。windows操作系统下system () 函数详解主要是在C语言中的应用,system函数需加头文件后方可调用。
信息
外文名
system
类    别
函数
中文名
系统
性    质
C/C++关键词
systemWindows函数
函数名: system功 能: 发出一个DOS命令用 法: int system(char *command);程序例:又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。例如,用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=亮蓝色 A=亮绿色 B=亮湖蓝色 C=亮红色 D=亮紫色 E=亮黄色 F=亮白色(注意:Microsoft Visual C++6.0 支持system)颜色属性由两个十六进制数字指定 -- 第一个对应于背景,第二个对应于前景。每个数字可以为以下任何值:0 = 黑色 8 = 灰色(“亮黑色”)1 = 蓝色 9 = 亮蓝色2 = 绿色 A = 亮绿色3 = 湖蓝色 B = 亮湖蓝色4 = 红色 C = 亮红色5 = 紫色 D = 亮紫色6 = 黄色 E = 亮黄色7 = 白色 F = 亮白色举例看了下面实例,相信你会对学到更多system在C程序设计中的应用。例一:C语言调用DOS命令实现定时关机:例二:用C语言删除文件,例如文件的位置是d:\123.txt用system()函数执行windows命令。
收起全文
精华内容
下载资源
问答
  • system
    万次阅读
    2021-04-12 15:02:45

    一、前言
    对数组的复制,有四种方法:

    for
    clone
    System.arraycopy
    arrays.copyof
    下面分析一下最常用的System.arraycopy()

    二、源码拜读
    1、源码

    2、参数分析
    Object src : 原数组
    int srcPos : 从元数据的起始位置开始
    Object dest : 目标数组
    int destPos : 目标数组的开始起始位置
    int length : 要copy的数组的长度
    三、深拷贝与浅拷贝
    如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。

    1、简单类型(深拷贝)
    package com.guor.test.javaSE.collection;

    import java.util.Arrays;

    public class ArrayTest {

    public static void main(String[] args) {
    	getStringArrayFromObjectArray2();
    }
    
    private static void copySelf() {
    	int[] ids = { 1, 2, 3, 4, 5 };  
    	System.out.println(Arrays.toString(ids));
    	//System.arraycopy(src, srcPos, dest, destPos, length);
    	// 把从索引0开始的2个数字复制到索引为3的位置上  
    	System.arraycopy(ids, 0, ids, 3, 2);
    	System.out.println(Arrays.toString(ids));//[1, 2, 3, 1, 2]
    }
    
    private static void copyToOther() {
    	int[] ids = { 1, 2, 3, 4, 5 };  
    	//将数据的索引1开始的3个数据复制到目标的索引为0的位置上  
    	int[] other = new int[5];
    	System.arraycopy(ids, 1, other, 0, 3);
    	System.out.println(Arrays.toString(ids));//[1, 2, 3, 4, 5]深复制
    	System.out.println(Arrays.toString(other));//[2, 3, 4, 0, 0]
    }
    
    //如果是类型转换问题,获取整形
    private static void getIntegerArrayFromObjectArray() {
    	Object[] obj1 = { 1, 2, 3, "4", "5" }; 
    	Integer[] obj2 = new Integer[5];
    	
    	try {
    		System.arraycopy(obj1, 0, obj2, 0, obj1.length);
    	} catch (Exception e) {
    		System.out.println("transfer exception:"+e);
    	}
    	System.out.println(Arrays.toString(obj1));
    	System.out.println(Arrays.toString(obj2));
    }
    
    //获取Object数组中的字符串类型数据
    private static void getStringArrayFromObjectArray1() {
    	Object[] obj3 = { 1, 2, 3, "4", "5" }; 
    	String[] obj4 = new String[5];
    	try {
    		System.arraycopy(obj3, 2, obj4, 2, 3);
    	} catch (Exception e) {
    		//transfer exception:java.lang.ArrayStoreException
    		System.out.println("transfer exception:"+e);
    	}
    	System.out.println(Arrays.toString(obj3));
    	//[null, null, null, null, null]
    	System.out.println(Arrays.toString(obj4));
    }
    
    //获取Object数组中的字符串类型数据
    private static void getStringArrayFromObjectArray2() {
    	Object[] obj3 = { 1, 2, 3, "4", "5" }; 
    	String[] obj4 = new String[5];
    	try {
    		System.arraycopy(obj3, 3, obj4, 3, 2);
    	} catch (Exception e) {
    		System.out.println("transfer exception:"+e);
    	}
    	System.out.println(Arrays.toString(obj3));
    	//[null, null, null, 4, 5]
    	System.out.println(Arrays.toString(obj4));
    	obj3[3] = "zhangssan";
    	System.out.println("查看是浅复制还是深复制~~~~~");
    	System.out.println(Arrays.toString(obj3));
    	System.out.println(Arrays.toString(obj4));
    }
    

    }
    只有普通数据类型和String类型是深拷贝!

    2、二维数组(浅拷贝)
    //二维数组
    public static void twoArray() {
    int[] arr1 = {1, 2};
    int[] arr2 = {3, 4};
    int[] arr3 = {5, 6};

    int[][] src = new int[][]{arr1, arr2, arr3};
    
    print("原始模样:", src);
    int[][] dest = new int[3][];
    System.arraycopy(src, 0, dest, 0, 3);
    
    System.out.println("改变前");
    print("src = ", src);
    print("dest = ", dest);
    
    //原数组改变后观察新数组是否改变,改变->浅复制,不改变->深复制
    src[0][0] = -1;
    
    System.out.println("改变后");
    print("src = ", src);
    print("dest = ", dest);
    

    }

    //二维数组toString()
    private static void print(String string, int[][] arr) {
    System.out.print(string);
    for (int[] a : arr) {
    for (int i : a) {
    System.out.print(i + " “);
    }
    System.out.print(”,");
    }
    System.out.println();
    }
    二维数组属于浅拷贝,原始数组改变后,复制的数据也发生了改变!

    3、对象复制(深拷贝?)

    四、System.arraycopy是不安全的
    1、代码实例
    多线程对数组进行复制,看System.arraycopy线程是否安全?

    package com.guor.test.javaSE.collection;

    import java.util.Arrays;
    import java.util.concurrent.locks.Condition;
    import java.util.concurrent.locks.ReentrantLock;

    public class ArrayTest2 {
    private static int[] arrayOriginal = new int[1024 * 1024 * 10];
    private static int[] arraySrc = new int[1024 * 1024 * 10];
    private static int[] arrayDest = new int[1024 * 1024 * 10];
    private static ReentrantLock lock = new ReentrantLock();

    private static void modify() {
        for (int i = 0; i < arraySrc.length; i++) {
            arraySrc[i] = i + 1;
        }
    }
    
    private static void copy() {
        System.arraycopy(arraySrc, 0, arrayDest, 0, arraySrc.length);
    }
    
    private static void init() {
        for (int i = 0; i < arraySrc.length; i++) {
            arrayOriginal[i] = i;
            arraySrc[i] = i;
            arrayDest[i] = 0;
        }
    }
    
    private static void doThreadSafeCheck() throws Exception {
        for (int i = 0; i < 100; i++) {
            System.out.println("run count: " + (i + 1));
            init();
            Condition condition = lock.newCondition();
    
            new Thread(new Runnable() {
                @Override
                public void run() {
                    lock.lock();
                    condition.signalAll();
                    lock.unlock();
                    copy();
                }
            }).start();
    
    
            lock.lock();
            // 这里使用 Condition 来保证拷贝线程先已经运行了.
            condition.await();
            lock.unlock();
    
            Thread.sleep(2); // 休眠2毫秒, 确保拷贝操作已经执行了, 才执行修改操作.
            modify();
    
            // 如果 System.arraycopy 是线程安全的, 那么先执行拷贝操作, 再执行修改操作时, 不会影响复制结果, 因此 arrayOriginal 必然等于 arrayDist; 
            if (!Arrays.equals(arrayOriginal, arrayDest)) {
                throw new RuntimeException("System.arraycopy is not thread safe");
            }
        }
    }
    
    public static void main(String[] args) throws Exception {
        //doThreadSafeCheck();
        executeTime();
    }
    
    private static void executeTime() {
    	String[] srcArray = new String[1000000];
        String[] forArray = new String[srcArray.length];
        String[] arrayCopyArray  = new String[srcArray.length];
        
        //初始化数组
        for(int i  = 0 ; i  < srcArray.length ; i ++){
            srcArray[i] = String.valueOf(i);
        }
        
        long forStartTime = System.currentTimeMillis();
        for(int index  = 0 ; index  < srcArray.length ; index ++){
            forArray[index] = srcArray[index];
        }
        long forEndTime = System.currentTimeMillis();
        System.out.println("for方式复制数组:"  + (forEndTime - forStartTime));
        
        long arrayCopyStartTime = System.currentTimeMillis();
        System.arraycopy(srcArray,0,arrayCopyArray,0,srcArray.length);
        long arrayCopyEndTime = System.currentTimeMillis();
        System.out.println("System.arraycopy复制数组:"  + (arrayCopyEndTime - arrayCopyStartTime));
    }
    

    }
    2、代码思路分析
    arrayOriginal 和 arraySrc 初始化时是相同的, 而 arrayDist 是全为零的.

    启动一个线程运行 copy() 方法来拷贝 arraySrc 到 arrayDist 中.

    在主线程执行 modify() 操作, 修改 arraySrc 的内容. 为了确保 copy() 操作先于 modify() 操作, 我使用 Condition, 并且延时了两毫秒, 以此来保证执行拷贝操作(即System.arraycopy) 先于修改操作.

    根据第三点, 如果 System.arraycopy 是线程安全的, 那么先执行拷贝操作, 再执行修改操作时, 不会影响复制结果, 因此 arrayOriginal 必然等于 arrayDist; 而如果 System.arraycopy 是线程不安全的, 那么 arrayOriginal 不等于 arrayDist.

    3、控制台输出

    ————————————————
    版权声明:本文为CSDN博主「GooReey」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/guorui_java/article/details/113187970

    更多相关内容
  • 解决System.Data.SQLite兼容32位和64位问题,包含vc++运行时环境 将当前说明文档的目录下的x64、x86目录和System.Data.SQLite.dll文件复制到您的应用程序根目录中(注意更新引用)。 如果是WEB网站,则复制到Bin...
  • C语言system函数使用

    万次阅读 多人点赞 2019-11-08 19:09:18
    int system(const char * command) 函数功能 执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分大小写。 说明:在windows系统中,system...

    函数原型
    包含在头文件 “stdlib.h” 中

    int system(const char * command)


    函数功能
    执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分大小写。

    说明:在windows系统中,system函数直接在控制台调用一个command命令。
    在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程。

    函数返回值
    命令执行成功返回0,执行失败返回-1。

    举个栗子

    实现关机小程序

    #include <stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
        char input[100];
        system("shutdown -s -t 60");
        //这是Windows系统下的一个关机命令
        flag:
    	printf("你的电脑将在一分钟后关机,如果输入“我是猪”,就会取消关机!\n请输入: ");
        scanf("%s",input);
        if(0==strcmp(input,"我是猪"))
    	{
            system("shutdown -a");//取消关机命令
    	}
        else
    	{
            goto flag;
    	}
        return 0;
    }
    

     

    我们今天来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用)
    注意:在windows下的system函数中命令可以不区别大小写!
    函数名: system
    功 能: 发出一个DOS命令
    用 法: int system(char *command);

    system函数已经被收录在标准c库中,可以直接调用。
    例如:

    # include <stdio.h>
    # include<stdlib.h>
    void main() {
    
    	//printf("锄禾日当午,写C代码真是苦,传智播客");
    	system("Nslookup");
    	//getchar();
    
    }

    又如:
    system(“PAUSE”)可以实现冻结屏幕,便于观察程序的执行结果;
    system(“CLS”)可以实现清屏操作。
    而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。

    例如:
    用 system(“color 0A”); 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:

    0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色

     

    参数	功能	说明
    ASSOC	显示或修改文件扩展名关联	
    ATTRIB	显示或更改文件属性	
    BREAK	设置或清除扩展式 CTRL+C 检查	
    BCDEDIT	设置启动数据库中的属性以控制启动加载	
    CACLS	显示或修改文件的访问控制列表(ACL)	
    CALL	从另一个批处理程序调用这一个	
    CD	显示当前目录的名称或将其更改	
    CHCP	显示或设置活动代码页数	
    CHDIR	显示当前目录的名称或将其更改	
    CHKDSK	检查磁盘并显示状态报告	
    CHKNTFS	显示或修改启动时间磁盘检查	
    CLS	清除屏幕	*
    CMD	打开另一个 Windows 命令解释程序窗口	*
    COLOR	设置默认控制台前景和背景颜色	*
    COMP	比较两个或两套文件的内容	
    COMPACT	显示或更改 NTFS 分区上文件的压缩	
    CONVERT	将 FAT 卷转换成 NTFS 你不能转换当前驱动器	
    COPY	将至少一个文件复制到另一个位置	
    DATE	显示或设置日期	后面加 /t 表示显示日期
    DEL	删除至少一个文件	
    DIR	显示一个目录中的文件和子目录	
    DISKPART	显示或配置磁盘分区属性	
    DOSKEY	编辑命令行、撤回 Windows 命令并创建宏	
    DRIVERQUERY	显示当前设备驱动程序状态和属性	
    ECHO	显示消息,或将命令回显打开或关闭	
    ENDLOCAL	结束批文件中环境更改的本地化	
    ERASE	删除一个或多个文件	*
    EXIT	退出 CMD.EXE 程序(命令解释程序)	*
    FC	比较两个文件或两个文件集并显示它们之间的不同	*
    FIND	在一个或多个文件中搜索一个文本字符串	*
    FINDSTR	在多个文件中搜索字符串	*
    FOR	为一组文件中的每个文件运行一个指定的命令	
    FORMAT	格式化磁盘,以便用于 Windows	
    FSUTIL	显示或配置文件系统属性	
    FTYPE	显示或修改在文件扩展名关联中使用的文件类型	
    GOTO	将 Windows 命令解释程序定向到批处理程序中某个带标签的行	
    GPRESULT	显示计算机或用户的组策略信息	
    GRAFTABL	使 Windows 在图形模式下显示扩展字符集	*
    HELP	提供 Windows 命令的帮助信息	
    ICACLS	显示、修改、备份或还原文件和目录的 ACL	
    IF	在批处理程序中执行有条件的处理操作	
    LABEL	创建、更改或删除磁盘的卷标	
    MD	创建一个目录	
    MKDIR	创建一个目录	
    MKLINK	创建符号链接和硬链接	
    MODE	配置系统设备	
    MORE	逐屏显示输出	*
    MOVE	将一个或多个文件从一个目录移动到另一个目录	
    OPENFILES	显示远程用户为了文件共享而打开的文件	
    PATH为	可执行文件显示或设置搜索路径	
    PAUSE	暂停批处理文件的处理并显示消息	
    POPD	还原通过 PUSHD 保存的当前目录的上一个值	
    PRINT	打印一个文本文件	
    PROMPT	更改 Windows 命令提示	
    PUSHD	保存当前目录,然后对其进行更改	
    RD	删除目录	
    RECOVER	从损坏的或有缺陷的磁盘中恢复可读信息	*
    REM	记录批处理文件或 CONFIG.SYS 中的注释(批注)	
    REN	重命名文件	
    RENAME	重命名文件	
    REPLACE	替换文件	*
    RMDIR	删除目录	
    ROBOCOPY	复制文件和目录树的高级实用工具	
    SET	显示、设置或删除 Windows 环境变量	
    SETLOCAL	开始本地化批处理文件中的环境更改	
    SC	显示或配置服务(后台进程)	
    SCHTASKS	安排在一台计算机上运行命令和程序	
    SHIFT	调整批处理文件中可替换参数的位置	
    SHUTDOWN	允许通过本地或远程方式正确关闭计算机	
    SORT	对输入排序	
    START	启动单独的窗口以运行指定的程序或命令	
    SUBST	将路径与驱动器号关联	
    SYSTEMINFO	显示计算机的特定属性和配置	
    TASKLIST	显示包括服务在内的所有当前运行的任务	
    TASKKILL	中止或停止正在运行的进程或应用程序	
    TIME	显示或设置系统时间	后面加 /t 表示显示时间
    TITLE	设置 CMD.EXE 会话的窗口标题	“TITLE 你想改成啥”
    TREE	以图形方式显示驱动程序或路径的目录结构	“TREE D:”
    TYPE	显示文本文件的内容	“TYPE D:\\文本.txt”
    VER	显示 Windows 的版本	
    VERIFY	告诉 Windows 是否进行验证,以确保文件正确写入磁盘	
    VOL	显示磁盘卷标和序列号	
    XCOPY	复制文件和目录树	
    WMIC	在交互式命令 shell 中显示 WMI 信息	
    


     

     

    举例
    看了下面实例,相信你会对学到更多system在C程序设计中的应用。
    示例一:
    我们来试一试用C语言调用DOS命令实现定时关机,想想也很有趣,嘿嘿:大家可以给你朋友电脑上弄一个哦 让他输入我是猪才能不关机否则就关机了 。想弄其他字段的话自己去修改下程序中你给的字就可以了哦。可是大家别玩过火了哦。小心自己也解决不了哦。

    #include<stdio.h>     //标准输入输出库函数
    
    #include<stdlib.h>    //可以输入system用以键入DOS管理窗口界面下的cmd中的命令
    
    #include<string.h>    //字符串,数组定义的库函数
    
    int main()
    
    {
    
        char a[10];    //定义一个字符类型的数组,便于玩家从键盘键入各类字符信息
    
    flag:
    
        printf("请输入\"我是猪\",否则电脑将在两分钟后关闭\n");  //“我是猪”此语句可由制定者自由更改,不过后面相应的位置也要记得改动
    
        system("shutdown -s -t 120");    //60秒倒计时关机命令,时间可自由更改
    
        scanf("%s", a);             //玩家从键盘键入字符串
    
        if (strcmp(a, "我是猪") == 0){  //比较两个字符串,若相等则执行IF下的语句
    
            printf("恭喜你成功选择自己的属相,主动承认现实!\n");
    
            system("shutdown -a");  //结束自动关机倒计时命令,当然也可以打破规则,取消该语句,不过那样就太邪恶了
    
        }
    
        else
    
            goto flag;        //跳转语句,跳转至flag标记处继续执行
    
        return 0;
    
    }
    

    这个程序可以实现的是定时关机大家可以去试试哦

    #include<stdio.h>     //标准输入输出库函数
    #include<stdlib.h>    //可以输入system用以键入DOS管理窗口界面下的cmd中的命令
    #include<string.h>    //字符串,数组定义的库函数
    int print()
    {
        printf("****************关机程序****************\n");
        printf("****1.实现在十分钟内的定时关闭计算机****\n");
        printf("************2.立即关闭计算机************\n");
        printf("***************3.注销计算机*************\n");
        printf("****************4.退出系统**************\n");
        return 0;
    
    }
    void main()
    {
        system("title C语言关机程序");//设置cmd窗口宽度
        system("mode con cols=48 lines=25");//窗口宽度高度
        system("color 0B");//设置默认控制台前景个背景色
        system("date /T");
        system("TIME /T");
        char cmd[20] = "shutdown -s -t";
        char t[5] = "0";
        print();
        int c;
        scanf("%d", &c);
        getchar();
        switch (c)
        {
        case 1:
            printf("您想在多少秒后自动关闭计算机?(0~600)\n");
            scanf("%s", t);
            system(strcat(cmd, t));
            break;
        case 2:
            system("shutdown -p");
            break;
        case 3:
            system("shutdown -1");
            break;
        case 0:
            break;
        default:
            printf("Error!\n");
        }
        system("pause");
        exit(0);
    
    }
    

     

    示例二:
    用C语言删除文件,例如文件的位置是d:\123.txt
    用system()函数执行windows命令。

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        system("del d:\123.txt");
        return 0;
    }

     

     

    展开全文
  • System.Data.SQLite(32、64通用版本)

    千次下载 热门讨论 2015-10-26 13:47:30
    System.Data.SQLite(32、64通用版本) 该资源转载自:http://download.csdn.net/detail/yhbcpg/7924311
  • windows xp系统system文件

    千次下载 热门讨论 2011-11-12 10:14:38
    windows/system32/config/system文件丢失或损坏,当windows xp系统system文件损坏或丢失,造成我们无法正常启动windows xp系统,我们可以用PE进入系统,把文件放到对应的位置windows/system32/config/system,再重新...
  • XP系统系统(C)盘Windows/system32/config/System文件丢失或损坏时替换修复。
  • 居然跑到 system\system_ext\priv-app 文件下了,这是什么鬼,又新加分区?之前 Q 版本已经新增了 product 分区, 并且 SystemUI、Launcher3、Settings这些核心应用都存放在此处,现在 R 版本又跑到这个 system_ext ...

    android11 开搞

    朋友们,最近拿到 androidR 的代码了,让我们来康康有哪些变动,一上来就给我整懵了,编译了 SystemUI 后发现

    居然跑到 system\system_ext\priv-app 文件下了,这是什么鬼,又新加分区?之前 Q 版本已经新增了 product 分区,

    并且 SystemUI、Launcher3、Settings这些核心应用都存放在此处,现在 R 版本又跑到这个 system_ext 分区下了

    关于动态分区之前介绍过 Android10 动态分区介绍

    r8XDMR.png

    一探究竟

    决定编译后 apk 的位置当然是在 Android.mk 或者 Android.bp 中啦,那我们去康康到底配置了啥子属性?

    vendor\mediatek\proprietary\packages\apps\SystemUI\Android.bp

    system_ext_specific: true,

    privileged: true,

    vendor\mediatek\proprietary\packages\apps\MtkSettings\Android.bp

    system_ext_specific: true,

    privileged: true,

    packages\apps\Launcher3\Android.mk

    LOCAL_PRIVILEGED_MODULE := true

    LOCAL_SYSTEM_EXT_MODULE := true

    vendor\mediatek\proprietary\packages\apps\Browser\Android.mk

    LOCAL_SYSTEM_EXT_MODULE := true

    看完上面这些配置可以知道了,

    bp 中配置 system_ext_specific: true,就将编译到 system\system_ext\ 中,

    privileged: true 决定在 priv-app 文件中,不加 privileged 则编译到 system\system_ext\app\

    mk 中配置 LOCAL_SYSTEM_EXT_MODULE := true,就将编译到 system\system_ext\ 中,

    LOCAL_PRIVILEGED_MODULE := true 决定在 priv-app 文件中,不加 LOCAL_PRIVILEGED_MODULE 则编译到 system\system_ext\app\

    system_ext_specific 和 LOCAL_SYSTEM_EXT_MODULE 的对照关系经过搜索位于

    build\soong\androidmk\androidmk\android.go

    addStandardProperties(bpparser.BoolType,
    		map[string]string{
    			// Bool properties
    			"LOCAL_IS_HOST_MODULE":             "host",
    			"LOCAL_CLANG":                      "clang",
    			"LOCAL_FORCE_STATIC_EXECUTABLE":    "static_executable",
    			"LOCAL_NATIVE_COVERAGE":            "native_coverage",
    			"LOCAL_NO_CRT":                     "nocrt",
    			"LOCAL_ALLOW_UNDEFINED_SYMBOLS":    "allow_undefined_symbols",
    			"LOCAL_RTTI_FLAG":                  "rtti",
    			"LOCAL_PACK_MODULE_RELOCATIONS":    "pack_relocations",
    			"LOCAL_TIDY":                       "tidy",
    			"LOCAL_USE_CLANG_LLD":              "use_clang_lld",
    			"LOCAL_PROPRIETARY_MODULE":         "proprietary",
    			"LOCAL_VENDOR_MODULE":              "vendor",
    			"LOCAL_ODM_MODULE":                 "device_specific",
    			"LOCAL_PRODUCT_MODULE":             "product_specific",
    			"LOCAL_SYSTEM_EXT_MODULE":          "system_ext_specific",
    			"LOCAL_EXPORT_PACKAGE_RESOURCES":   "export_package_resources",
    			"LOCAL_PRIVILEGED_MODULE":          "privileged",
    			"LOCAL_AAPT_INCLUDE_ALL_RESOURCES": "aapt_include_all_resources",
    			"LOCAL_DONT_MERGE_MANIFESTS":       "dont_merge_manifests",
    			"LOCAL_USE_EMBEDDED_NATIVE_LIBS":   "use_embedded_native_libs",
    			"LOCAL_USE_EMBEDDED_DEX":           "use_embedded_dex",
    
    			"LOCAL_DEX_PREOPT":                  "dex_preopt.enabled",
    			"LOCAL_DEX_PREOPT_APP_IMAGE":        "dex_preopt.app_image",
    			"LOCAL_DEX_PREOPT_GENERATE_PROFILE": "dex_preopt.profile_guided",
    
    			"LOCAL_PRIVATE_PLATFORM_APIS": "platform_apis",
    			"LOCAL_JETIFIER_ENABLED":      "jetifier",
    		})
    }
    
    

    那么 LOCAL_SYSTEM_EXT_MODULE 这个又是在那里使用的呢?继续在 build 中查找

    build\make\core\base_rules.mk

    else ifneq ($(filter $(TARGET_OUT_SYSTEM_EXT)/%,$(_path)),)
    LOCAL_SYSTEM_EXT_MODULE := true
    endif
    _path :=
    
    else ifeq (true,$(strip $(LOCAL_SYSTEM_EXT_MODULE)))
      partition_tag := _SYSTEM_EXT
      # A system_ext-specific module could be on the system_ext partition at
      # "system_ext" or the system partition at "system/system_ext".
      actual_partition_tag := $(if $(filter true,$(BOARD_USES_SYSTEM_EXTIMAGE)),system_ext,system)
    
    

    紧接着查找 TARGET_OUT_SYSTEM_EXT 到

    build\make\core\envsetup.mk

    TARGET_OUT_SYSTEM_EXT := ( P R O D U C T O U T ) / (PRODUCT_OUT)/ (PRODUCTOUT)/(TARGET_COPY_OUT_SYSTEM_EXT)

    TARGET_COPY_OUT_SYSTEM_EXT := $(_system_ext_path_placeholder)

    _system_ext_path_placeholder := ||SYSTEM_EXT-PATH-PH||

    再接着找 SYSTEM_EXT

    build\make\tools\releasetools\check_target_files_vintf.py

    # each partition.
    DIR_SEARCH_PATHS = {
        '/system': ('SYSTEM',),
        '/vendor': ('VENDOR', 'SYSTEM/vendor'),
        '/product': ('PRODUCT', 'SYSTEM/product'),
        '/odm': ('ODM', 'VENDOR/odm', 'SYSTEM/vendor/odm'),
        '/system_ext': ('SYSTEM_EXT', 'SYSTEM/system_ext'),
    }
    

    build\make\target\board\BoardConfigEmuCommon.mk

      ifeq ($(QEMU_USE_SYSTEM_EXT_PARTITIONS),true)
        BOARD_EMULATOR_DYNAMIC_PARTITIONS_PARTITION_LIST := \
            system \
            system_ext \
            product \
            vendor
    
        TARGET_COPY_OUT_PRODUCT := product
        BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
        TARGET_COPY_OUT_SYSTEM_EXT := system_ext
        BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
      else
        TARGET_COPY_OUT_PRODUCT := system/product
        TARGET_COPY_OUT_SYSTEM_EXT := system/system_ext
        BOARD_EMULATOR_DYNAMIC_PARTITIONS_PARTITION_LIST := \
            system \
            vendor
      endif
    

    build\make\core\board_config.mk

    # Now we can substitute with the real value of TARGET_COPY_OUT_SYSTEM_EXT
    ifeq ($(TARGET_COPY_OUT_SYSTEM_EXT),$(_system_ext_path_placeholder))
    TARGET_COPY_OUT_SYSTEM_EXT := system/system_ext
    else ifeq ($(filter system_ext system/system_ext,$(TARGET_COPY_OUT_SYSTEM_EXT)),)
    $(error TARGET_COPY_OUT_SYSTEM_EXT must be either 'system_ext' or 'system/system_ext', seeing '$(TARGET_COPY_OUT_SYSTEM_EXT)'.)
    endif
    PRODUCT_COPY_FILES := $(subst $(_system_ext_path_placeholder),$(TARGET_COPY_OUT_SYSTEM_EXT),$(PRODUCT_COPY_FILES))
    
    

    行了,就先整这么多吧,到这里已经很清楚了。

    展开全文
  • Microsoft® System CLR Types for Microsoft® SQL Server® 2012 SQL Server System CLR Types 包包含用于在 SQL Server 2012 中实现 geometry、geography 和 hierarchy ID 类型的组件。此组件可单独从服务器安装...
  • System.Data.SQLite.dll

    千次下载 热门讨论 2013-05-30 06:22:56
    All the "bundle" packages contain the "System.Data.SQLite.dll" mixed-mode assembly. http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
  • 性能分析工具System Trace

    千次阅读 2022-03-15 15:40:46
    Android 9或更高版本的设备包含一个名为 System Tracing的系统级应用。允许您直接从测试设备本身录制跟踪记录,而无需插入设备并通过 ADB 连接到该设备。解决应用中与性能相关的错误(例如启动速度慢、转换速度慢或...

    前言

    Android 9或更高版本的设备包含一个名为 System Tracing的系统级应用。允许您直接从测试设备本身录制跟踪记录,而无需插入设备并通过 ADB 连接到该设备。解决应用中与性能相关的错误(例如启动速度慢、转换速度慢或界面卡顿)时,录制跟踪记录特别有用。

    使用

    可以使用“快捷设置”图块录制系统跟踪记录。如果首次在测试设备上使用 System Tracing,或在设备的快捷设置面板中看不到 System Tracing 图块。如下图所示:
    在这里插入图片描述

    • 启用开发者选项,找到系统跟踪
      在这里插入图片描述
    • 在系统跟踪中,打开显示快捷设置图块
      在这里插入图片描述
    • 手机的通知栏上会显示 System Tracing 图块
      在这里插入图片描述
    • 点击系统跟踪图块,该图块带有“录制跟踪记录”标签。该图块会变为启用状态,并且系统会显示常驻通知,通知您系统正在录制跟踪记录
      在这里插入图片描述
    • 通过点按快捷设置面板中的 System Tracing 图块或点按“System Tracing notification”来停止跟踪。
      在这里插入图片描述
      系统会显示一条包含消息“Saving trace”的新通知
    • 保存完成后,系统会关闭该通知,并显示第三条通知,确认您的跟踪记录已保存并且您已准备好共享系统跟踪记录
      在这里插入图片描述

    结果分析

    在搭载 Android 10或更高版本的设备上,跟踪文件会使用 .perfetto-trace 文件扩展名保存,并可在 Perfetto 界面中打开。在搭载较旧 Android 版本的设备上,跟踪文件会使用 .ctrace 文件扩展名(表示 Systrace 格式)保存。
    在这里插入图片描述
    选择上图的open trace file 打开跟踪文件.perfetto-trace。通过分析具体数据来优化相关功能。

    展开全文
  • Unity可用的System.Drawing.dll

    热门讨论 2014-05-20 22:56:25
    C#的System.Drawing.dll 可在Unity中使用的版本
  • System.Web.Extensions.dll

    热门讨论 2011-07-18 11:20:48
    Parser Error Message: Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 系统找不到指定的文件。 ...
  • windows server 2003 system文件

    千次下载 热门讨论 2011-10-25 15:53:18
    我们经常会遇到这样的问题,因缺少系统system文件而造成系统无法启动,我们只需要用PE进入系统然后把这个system文件放到他对应的位置就可以启动了。
  • config/system 下载包

    千次下载 热门讨论 2009-08-05 14:46:03
    恢复由于注册表损坏而无法启动...c:\windows\system32\config\system c:\windows\system32\config\software c:\windows\system32\config\sam c:\windows\system32\config\security c:\windows\system32\config\default
  • System.Web.Mvc.dll 1.0-5.0各种版本

    热门讨论 2014-07-10 22:25:25
    1.0-4.0的各种版本 asp.net C#.net 都能用到。
  • System.Json.dll

    热门讨论 2012-02-28 11:25:01
    System.Json.dll json的命名空间,可以用到的类:JsonArray、JsonObject、JsonPrimitive、JsonValue。枚举:JsonType
  • SystemVue介绍

    万次阅读 2019-06-03 12:09:43
    主要参考了KEYSIGHT提供的SystemVue使用手册,挑选重要的信息作为记录。 一、什么是SystemVue? 一款电子设计自动化(Electronic Design Automation, EDA)软件,专门运用在电子西永层级(Electronic System Level, ...
  • java中的System.in、System.out、System.err

    千次阅读 多人点赞 2019-06-20 18:24:51
    标准输入 System.in 标准输出 System.out 标准错误 System.err 初始化分析 查看 java API或者源码可以看到定义(java.lang.System类): public final static InputStream in = null; public final...
  • Android获取SystemProperties方法

    万次阅读 2022-04-25 15:06:08
    Android API从21后开始,不再直接支持通过SystemProperties.get/set方式来获取/设置系统属性。 目前有两种方式可以获取/设置系统属性,分别为通过反射方法及AndroidStudio中通过引入jar包来解决。 二、方法一 通过...
  • [ExceptionMessage]:Unable to cast object of type ‘System.DBNull’ to type ‘System.String’.\r\n\t[ExceptionStackTrace]: at MySqlConnector.Core.Row.GetString(Int32 ordinal) in /_/src/MySqlConnector/...
  • system是什么意思?

    千次阅读 2021-05-21 13:53:47
    原创system是什么意思?编辑:小葫芦 来源:PC下载网时间:2018-05-31 13:51:27system是电脑中经常见到的一个单词,那么system到底是什么意思呢?1.相信经常使用电脑的小伙伴,经常会在电脑中看到system这个单词,很多...
  • System.err和System.out的区别

    万次阅读 2020-12-19 14:49:32
    在 java API,文档中给出的解释是:out为“标准输出流”,err为“标准错误输出流” 大多数操作系统都有三个标准文件描述符:标准输入,标准...对应Java中的System.in,System.out,System.err。 我们使用out和e...
  • /system/priv-app中包括 Launcher,SystemUI,SettingsProvider 等,均是系统的核心应用,这些应用能使用系统级的权限,4.4 之前的所有/system/app下的软件都能使用系统级的权限,Google 这样做是把内置到系统的应用...
  • 怎么获得system() 函数的返回值

    千次阅读 2022-01-07 11:11:12
    则只能使用system() 来实现,那么怎么根据system()函数的返回值来确认,脚本是否执行成功?或者脚本是否完成所打算执行的功能呢?下面通过一个例子来说明。 1.实现功能的脚本如下, 脚本名字是 update_mcu.sh: ...
  • C中system用法

    万次阅读 多人点赞 2019-12-23 10:28:21
    格式system(“命令语句”); 需要在代码中加上#include<stdlib.h>才可使 一、system (1)、system("pause") 在 #include <stdlib.h>头文件中! 作用:暂停 (2)、COLOR [attr] attr 指定控制台...
  • 今天的主题,从头到尾就两个字:时间。 坚持看完整篇blog,一定会有收获。 开发中经常要用到时间戳,下面将会详细介绍,如下系统函数的功能和差异 : System.nanoTime() ...SystemClock.currentThre...
  • 出厂安卓11机型解锁system分区教程

    万次阅读 热门讨论 2021-08-12 22:43:17
    要解锁system,原理就是去除vbmeta检验就可以了,本教程就是去除vbmeta检验(简称AVB2.0检验),已达到解锁system分区的目的,任意修改system分区。 要去除AVB2.0检验,就要修改/vendor/etc/fstab.qcom文件,删除...
  • SystemClock.uptimeMillis() // 从开机到现在的毫秒数(手机睡眠的时间不包括在内); System.currentTimeMillis() // 从1970年1月1日 UTC到现在的毫秒数; 第2个时间,是可以通过System.setCurrentTimeMillis...
  • C语言system函数

    万次阅读 多人点赞 2018-01-04 10:53:44
    我们今天来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用) 注意:在windows下的system函数中命令可以不区别大小写! 函数名: system 功 能: 发出一个DOS命令 用 法: int system(char *...
  • android system.img解包工具(windows)版

    千次下载 热门讨论 2011-05-27 17:14:24
    把unyaffs与system.img放到同一目录,进入命令模式,运行:unyaffs system.img;windows上的android img解包工具,用于解system.img等文件,不包含打包功能。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,710,911
精华内容 3,884,364
关键字:

system