首页 文章 精选 留言 我的

精选列表

搜索[打包],共8582篇文章
优秀的个人博客,低调大师

Unity框架与资源打包

对象池一种通用型的技术,在其他语言中也会用到 池线程池、网络连接池,池是一个思想,将不用的东西暂时用池存起来,等到再次使用的时候再调出来用,节省CPU的调度 对象C#的任何一个类都可以实例化一个对象Object Unity中的游戏对象GameObject 思路最开始的时候,池中没有对象,需要生成。用完之后放到池中。再次使用的时候再从池中获取 3.1 回收对象把对象放到池中 3.2 获取对象从池中获取对象 3.3 代码实现using System.Collections.Generic;using UnityEngine; public class ObjectPool{ region 单例 // 声明单例private static ObjectPool Instance; /// /// 获取单例/// /// The instance./// Res path.public static ObjectPool GetInstance(string resPath = ""){if (Instance == null){if (resPath != "")Instance = new ObjectPool(resPath);elseInstance = new ObjectPool();}Instance.UpdateResourcePath(resPath);return Instance;}// 构造函数private ObjectPool(){prefabs = new Dictionary();pools = new Dictionary>();}private ObjectPool(string resPath){prefabs = new Dictionary();pools = new Dictionary>();resourcePath = resPath;} endregion region 对象预设体资源管理 // 资源加载路径private string resourcePath;// 用字典存储所有的预设体private Dictionary prefabs;// 更新预设体加载路径private void UpdateResourcePath(string resPath){resourcePath = resPath;} // 获取预设体private GameObject GetPrefab(string prefabName){// 如果包含预设体,直接返回if (prefabs.ContainsKey(prefabName))return prefabs[prefabName];// 如果不包含预设体,添加新的预设体,并返回return LoadPrefab(prefabName);}// 加载预设体private GameObject LoadPrefab(string prefabName){// 拼接路径string path = "";if (resourcePath != ""){path += resourcePath;}// 加载预设体GameObject obj = Resources.Load(path + prefabName);// 存入字典if (obj != null)prefabs.Add(prefabName, obj);// 返回return obj;} endregion region 对象池 // 对象池private Dictionary> pools; /// /// 回收对象/// /// Object.public void RecycleObject(GameObject obj){// 非激活obj.SetActive(false);// 获取对象名称string objName = obj.name.Replace("(Clone)", "");// 判断有无该类对象池// 如果没有,实例化一个子池if (!pools.ContainsKey(objName))pools.Add(objName, new List());// 存入pools[objName].Add(obj);} /// /// 获取对象/// /// The object./// Object name./// Pool event.public GameObject SpawnObject(string objName, System.Action poolEvent = null){// 声明一个输出结果GameObject result = null;// 如果有池,并且池中有对象if (pools.ContainsKey(objName) && pools[objName].Count > 0){result = poolsobjName;pools[objName].Remove(result);}// 如果没有池,或者池中没有对象,需要生成else{// 拿到预设体GameObject prefab = GetPrefab(objName);if (prefab != null)result = GameObject.Instantiate(prefab);}// 激活result.SetActive(true); // 执行事件if (result && poolEvent != null)poolEvent(result); // 返回结果return result;} endregion }

优秀的个人博客,低调大师

linux打包压缩磁盘管理

Linux管理 命令df 用于查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认以KB为单位显示: 文件系统1K-块 已用 可用 已用% 挂载点 -i:表示查看inodes的使用情况, df -i |grep -v tmps //grep -v的作用是过滤掉包含tmpfs字符串的行 -h:表示使用合适的单位显示: -k、-m:分别表示以KB和MB为单位显示 命令du 用来查看某i个目录和文件所占空间的大小, -a 表示全部目录和文件的大小都列出来 -b 表示列出的值以B为单位输出 -k 表示以KB为单位输出,这和默认不加任何选项的输出值是一样的 -m 表示以MB为单位输出 -h 表示系统自动调节单位 -c 表示最后加总 -s 表示只列出总和 磁盘分区和格式化 增加虚拟磁盘 在当前的虚拟机选项卡点击鼠标右键,选择设置 此时弹出虚拟机设置在左侧选中磁盘,然后点击下放的添加按钮,此时会弹出添加硬件向导对话框,点击下一步 选择磁盘类型走默认 选择磁盘走默认 指定磁盘容量这里设定最大磁盘大小5GB,选择 将虚拟机磁盘储存为单个文件: (6)点击下一步,点完成,现在不能被识别,需要重启 命令:fdisk Linvx下磁盘的分区工具, fdisk -l fdisk -l /dev/sdb p表示打印当前磁盘的分区情况 n表示建立一个新的分区 W保存 q表示退出 d表示删除一个分区 [root@ns1 ~]# fdisk /dev/sdb 分区由:主分区,逻辑分区,扩展分区 主分区最多可以创建4个,如果想创建第5个,需要创建一个逻辑分区 p:主分区 e:逻辑分区 创建主分区,区号为1,然后敲击回车 指定分区大小, 因为用的是CentOS7版本,默认最低为2G 建立4个区后,在建出错, 删除实验所建分区 创建新分区时选择扩展分区 W:表示保存 Fdisk -l /dev/sdb 查看分区情况。 格式化磁盘分区 Ext 文件系统类型 -i:设定inode的大小 -n:设定inode的数量 -t:指定文件系统的类型 (ext2,ext3) .指定块大小, 会提示块值设置太大,直接y强制格式化 格式化之后还不可以直接使用,需要挂载。 挂载sdb5到aming 挂载点要求:空目录,不可以家目录。 多个分区可以挂载同一个目录下,但是会覆盖前一个。 命令:mount 备注:可以查看已挂载分区的文件系统类型,未挂载的分区可以使用blkid命令查看 备注:先建一个空目录,在目录里面建一个空白文档, 备注:这条命令是把刚才格式化的/dev/sdb5挂载到/newdir上 备注:通过df -h命令可以查看刚刚挂载的分区 挂载不存在的会报错 挂载点1234不存在 也可以使用LABEL的方式挂载分区 备注:umount命令,用来卸载磁盘分区 挂载分区 格式化完成后进行挂载 将sdb2也挂载到aming下 两个分区,都挂载到aming目录下 ,不会占用sdb5空间,已经覆盖 查看分区内容 挂载常用选项 Mount -t 用来指定分区格式 -a 配置文件里面的配置全部挂载上 Blkid 可以通过blkid命令获取各分区的UUID 6.4挂载/卸载磁盘 mount命令 [root@ns1 ~]# mkdir /newdir [root@ns1 ~]# touch /newdir/newfile.txt [root@ns1 ~]# ls /newdir newfile.txt [root@ns1 ~]# mount /dev/sdb5 /newdir mount: you must specify the filesystem type [root@ns1 ~]# ls /newdir newfile.txt [root@ns1 ~]# df -h |grep -v tmpfs Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 2.1G 15G 13% / /dev/sda1 488M 33M 430M 8% /boot [root@ns1 ~]# 6.4.2/etc/fstab配置文件 这个文件中显示了系统启动时需要挂在的各个分区 学完/etc/fstab我们可以自己修改这个文件 卸载之前已经挂在的/dev/sdb5 # umount /dev/sdb5 # df -h |grep -v tmps Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 2.1G 15G 13% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 488M 33M 430M 8% /boot 使用命令df -h查看 -t选项:用来指定挂载的分区类型默认不指定,自动识别 -o 用来指定挂载的分区有那些特性,即上面的/etc/fstab配置文件中地撕裂有哪些 命令:blkid 用来获取各个分区的UUID 如果想让某个分区在开机后自动挂载1.在/etc/fstab中添加一行,2.是把挂载命令写道etc/rc.d/rc.local文件里,系统启动后会执行这个文件中的命令 命令umount 这个命令后便可以直接跟挂载点也可跟分区,但不可以跟LABEL和UUID 建立一个swap文件增加虚拟内存安装 建立swapfile-->格式化位swap格式--->启动该虚拟机磁盘 建立swapfile 后边将他格式化位swap格式: 就

优秀的个人博客,低调大师

Android 程序打包及签名

为什么要签名??? 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换。 APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。 这样签名其实也是开发者的身份标识。交易中抵赖等事情发生时,签名可以防止抵赖的发生。 签名的注意事项 所有的Android应用都必须有数字签名,没有不存在数字签名的应用,包括模拟器上运行的。Android系统不会安装没有数字证书的应用。 签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。 正式发布一个Android应用时,必须使用一个合适的私钥生成的数字证书来给程序签名,不能使用ADT插件或者ANT工具生成的调试证书来发布。 数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。 签名的方法 1:打开Eclipse->选择你要签名的项目->右击->android tools->Export signed Application package 弹出如下窗口 2:选中你要签名的项目,然后next, 因为我们是第一次签名,还没有签名证书,所以先create new keystore,以后就不用再创建了,直接选择已存在的证书。 选择证书保存的位置,填入密码,然后next, 3: 填写签证的信息,包括:别名,密码,有效期,姓名,组织,组织名称,所在城市,所在省份,国家等,然后finish。 4:最后弹出一个窗口,选择你要保存apk包的位置。 点击finish之后,稍等片刻就生成了你自己的Android安装包了。 原文:http://www.cnblogs.com/timeng/archive/2012/02/17/2355513.html 本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/p/4439504.html如需转载请自行联系原作者 欢醉

优秀的个人博客,低调大师

打包自己的aar库

在比较大的 Android 项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决,但是如果通过include的方式来引入第三方库的时候,第一次编译会特别慢,所以Android在V7版本之后为我们添加了一种添加aar的方案,其实说白了就是jar的另一种形式,至于怎么写自己的jar(其实百度,google一大堆,实践下就好了),请点击封装自己的jar文件。 今天说说怎么打aar包,以及在项目中引用。 1,新建一个project,在project中新建一个module,选择Android jar,然后下一步即可。然后运行,会在你工程目录***\build\outputs\aar看到你的aar。 2,引用aar:将aar放在你所需要引用工程的libs文件夹中 第一种方式比较简单,打开Project Structure,添加一个新 Module,然后选择Import *.JAR or *.AAR Package的方式导入(也可以使用快捷键ctrl+shift+alt+s): 接着可以在 gradle 中配置依赖了,其他 Module 可以引用这个 Module 了,依赖方式使用compile project的方式即可。 但是这种方式有一个缺点,被依赖的 aar 无法 看到资源文件内容以及目录层级等。 第二种方式导入(build.gradle方式) 题外话(gradle引入第三方文件脚步配置): compile fileTree(dir: 'xxx', include: ['*.jar', "*.xxx"]):将某个目录下所有符合扩展名的文件作为依赖; compile 'com.xx.xx:ProjectName:Version':配置Maven` 库作为依赖;在Maven 库中心可以搜索自己想用的库进行依赖; compile project(':AnotherModule'):配置另一个 Module 作为本 Module 的依赖,被依赖的 Module 必须被导入到当前工程中; compile files('xxx.jar'):配置某个 jar 包作为依赖。 gradle 其实还有另一种依赖可以引用 aar: compile(name: 'xxx', ext: 'aar')。 然后在 gradle 配置文件中把 libs 目录加入依赖。 接着在 gradle 的依赖配置中加入compile(name: 'xxx', ext: 'aar')这一句,依赖即可关联完毕。构建一下工程,在 Module 的build/intermediates/exploded-aar目录下,可以看到有一些临时文件生成。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册