精华内容
下载资源
问答
  • Android Studio 编译速度慢,一般来说,原因有下面几个。 Gradle下载慢 依赖库下载慢 依赖库使用"+"(使用最新的),每次都需要去查找新的(尽量不适用这种方式) 这里,大部分的库,我们可以通过...依赖关系,如下...

    Android Studio 编译速度慢,一般来说,原因有下面几个。

    • Gradle下载慢
    • 依赖库下载慢
    • 依赖库使用"+"(使用最新的),每次都需要去查找新的(尽量不适用这种方式)

    这里,大部分的库,我们可以通过阿里云代理仓库。
    但是,如果有我们自己的私有库或者插件的话。肯定不希望放到阿里云上了。

    这个时候,我们就需要建立,我们自己的本地仓库,让私有仓库,依赖阿里云的私有仓库。

    依赖关系,如下图
    在这里插入图片描述

    这样,既保证了我们私有库的安全性,又让我们的依赖库也享受到了阿里云代理仓库的便利。

    通过Artifactory搭建本地仓库可以参考:架构师教程Artifactory破解步骤。这里就不说明了。

    下面,我们主要说明的是本地仓库的配置及在项目中的引用。

    一,本地仓库的创建

    这里又分为2个部分:

    • 依赖本地的库
      比如,Gradle的版本,或者自己写的Gradle插件等等
    • 依赖远程的库
      比如,OKHttp,Retrofit等等第三方库
    • 创建虚拟组
      这样的话,方便我们的引入。不用每个库都引入进来。

    1,创建依赖本地的库

    点击左侧的Admin→local,进入Local Repositories。

    在这里插入图片描述

    点击右上角的按钮(New)
    在这里插入图片描述

    选择Maven,然后,填写Repository key,我们就起一个android_local(自己定义就好)。

    然后,点击Save & Finish,到这里就创建了一个本地的Maven仓库。

    在这里插入图片描述

    然后,我们在Local Repositories下面就看到了,我们创建的本地库。

    在这里插入图片描述

    下面,我们就要把我们下载好的Gradle,放到这个本地仓库。

    点击左侧栏第2个按钮,Artifact Repository Browser

    选择,我们的android_local的maven库,点击右侧Deploy,把我们的Gradle的zip上传上去就可以了

    如下图

    在这里插入图片描述

    上传完成后,我们在左侧的android_local下面,就看到了这个Gradle的zip包

    在这里插入图片描述

    这里,有个东西需要配置一下。仓库默认上传文件大小是100M,我们需要改大一些,不然,上传会失败。

    点击左侧的Amin→General Configuration 。

    在这里插入图片描述

    修改File Upload Max Size (MB),这个选项,我们改成400M,点击Save。

    如下图,修改完后,再上传我们的Gradle的zip就没有问题了。

    在这里插入图片描述

    到这里,我们建立的本地的仓库就配置完成了

    2,依赖远程的库

    我们项目除了Gradle以外,开发时会用到很多的第三方库,这个时候,我们还需要配置一个依赖远程的仓库。

    根据上面的流程,我们的远程仓库,需要依赖阿里云的代理仓库。这里先创建一个jcenter仓库。

    首先,点击左侧的Admin–→Remote

    在这里插入图片描述

    然后,跟本地仓库一样,点击右侧的New按钮
    在这里插入图片描述

    我们填写一个repository key叫aliyun_maven。并填写地址。
    在这里插入图片描述

    填写完成后,点击右下角的Save & Finish。

    就创建好了,我们的jcenter仓库。

    我们还要创建google的本地仓库,最好再创建一个public的仓库(防止,其他的地方找不到)

    创建完成后,我们看下,我们的远程仓库列表

    在这里插入图片描述

    可以看到,我们的3个远程仓库都创建好了。

    3,创建虚拟组

    上面,我们把Gradle的文件仓库和依赖库依赖的google(),jcenter()仓库,都创建好了。

    如果,我们每个都依赖到项目的话,很不方便。首先,需要写很多;其次,就是如果再添加其他仓库的话,我们也需要都次都改动,这个地方。

    这里,我们就创建一个虚拟组。这样,我们的项目,只需要依赖一个虚拟组,让虚拟组把上面的仓库都添加进去就可以了。

    首先,点击左侧的Admin–→Virtual。

    在这里插入图片描述

    其次,还是点击右上角的New按钮。填写Repository key,把上面的aliyun_jcenter,android_local等等仓库添加进去。
    在这里插入图片描述

    最后,点击Save & Finish

    这样,我们的组就创建好了。

    最后,看下我们所有创建的仓库。
    在这里插入图片描述

    二,使用本地仓库

    上面的本地仓库创建好以后,我们就不用直接依赖google()等仓库了。

    修改我们的项目配置。

    1, gradle–→wrapper–gradle-wrapper.properties 下的gradle下载地址

    #distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
    distributionUrl=http\://localhost:8081/artifactory/android_local/gradle-4.10.1-all.zip
    
    

    这里,我们直接依赖我们的本地仓库的地址。

    2, 修改项目下的build.gradle

    
    buildscript {
        repositories {
    //        google()
    //        jcenter()
            maven{
                url 'http://localhost:8081/artifactory/android_depend/'
            }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.3.1'
        }
    }
    
    allprojects {
        repositories {
    //        google()
    //        jcenter()
            maven{
                url 'http://localhost:8081/artifactory/android_depend/'
            }
        }
    }
    
    

    这里,我们看到我们不在直接依赖jcenter(),google()仓库了。而是依赖,我们自己的本地仓库的那个虚拟组。

    这样,以后我们有自己的私有库或者插件的话,就保证了安全性。我们本地仓库依赖了阿里云的代理仓库。也不用担心下载不下来的问题了。

    展开全文
  • 依赖关系,如下 这样,既保证了我们私有库的安全性,又让我们的依赖库也享受到了阿里云代理仓库的便利。 通过Artifactory搭建本地仓库可以参考:架构师教程Artifactory破解步骤。这里就不说明
  • 这是基于百度地图sdk的地图app开发系列博客第三篇 代码仓库位置:https://github.com/YanhuiLu89/lmap.git 上一篇 基于百度地图sdk的地图app开发(二)——地图显示

    这是基于百度地图sdk的地图app开发系列博客第三篇

    代码仓库位置:https://github.com/YanhuiLu89/lmap.git

    上一篇 基于百度地图sdk的地图app开发(二)——地图显示

    下一篇 于百度地图sdk的地图app开发(四)——显示地图定位

    因为本人是做C++开发,android和java都不熟,这方面知识有说错或者不好的习惯,欢迎赐较。

    上一篇地图显示出来是上面这个样子的

    这一篇的优化主要从两个个方面:调整布局、增加切换地图类型功能。

    一、调整布局

    1.1 去掉地图中间的“PREVIOUS"按钮,以及右下角的email按钮

    在activity_main.xml中去掉conten_main布局,如下图注释掉的代码

    main_activity.java中关于id为fab按钮的代码也去掉,如下图

    1.2 增加地图类型切换按钮

    往布局中左下角拖入一个按钮,给按钮添加图片,完成之后,xml文件内容如下

        <ImageButton
            android:id="@+id/mapTypeBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="60dp"
            app:layout_anchorGravity="top"
            app:srcCompat="@android:drawable/ic_dialog_map" />

    布局效果如下

    二、切换地图类型功能

    官方参考文档切换地图类型

    给1.2中的地图类型切换按钮,增加响应函数,响应函数中实现地图类型切换,代码如下

     ImageButton matype = this.findViewById(R.id.mapTypeBtn);
            matype.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    BaiduMap map= mMapView.getMap();
                    int type=map.getMapType();
                    switch(type)
                    {
                        case MAP_TYPE_NORMAL:
                            map.setMapType( MAP_TYPE_SATELLITE);//从普通地图切换到卫星地图
                            break;
                        case MAP_TYPE_SATELLITE:
                            map.setMapType(MAP_TYPE_NONE);//从卫星地图切换到空白地图
                            break;
                        case MAP_TYPE_NONE:
                            map.setMapType(MAP_TYPE_NORMAL);//从空白地图切换到普通地图111
                            break;
                    }
                }
            });

    多次点击地图类型切换按钮效果如下

        

     

     

     

     

     

     

     

     

     

    展开全文
  • 重要性普通仓库项目中存储成本是主要成本项,包含仓租、存储系统折旧、电费、仓库管理费等。传统2B业务的存储成本通常占成本...成功的存储方案是物流企业赢得新客户的重要基础,同时也为企业内部存储项目优化提供参...

    ed8263d1d8191d3db4b104d7dab78b25.png

    重要性

    普通仓库项目中存储成本是主要成本项,包含仓租、存储系统折旧、电费、仓库管理费等。传统2B业务的存储成本通常占成本的50% 左右。如今每个物流企业所租用的仓库租金类似,要提供有竞争的仓库价格,必须充分地提高仓库的空间及面积利用率。合理的存储方案设计,需要兼顾成本、效率、安全性、可靠性、通用性、可操作性等。成功的存储方案是物流企业赢得新客户的重要基础,同时也为企业内部存储项目优化提供参考。

        存储方案设计主要包含大货架(托盘)和中小型货架(料箱或纸箱)。设计前需要充分了解客户产品的特点、订单特点、周转速度、操作的颗粒度要求以及仓库参数、货架和叉车成本等,这些是准备仓储方案设计的基础信息。

    c6c3e1926325392a8ebf4df306567826.png

    这里我们不做详细展开。

     大货架(托盘)

    Ø  单深位货架(singleselective)

    Ø  窄巷道货架又称VNA货架(very narrow aisle)

    Ø  双深位货架(double deep)

    Ø  驶入式货架又称为贯通式货架或通廊式货架(drivein)

    Ø  重力式货架(辊道式货架)(gravityrack)

    Ø  穿梭式货架(shuttle rack)

    Ø  自动化立体货架AS/RS(Automatic Storage and Retrieval System)

    Ø  托盘四向穿梭车式立体库(fourd irection shuttle rack)

    中小型货架(料箱或纸箱)

    Ø  单层搁板式货架

    Ø  阁楼式货架

    Ø  料箱式存储货架和Kubo搬运机器人组合

    Ø  料箱式存储货架和 Kiva搬运机器人组合

    Ø  料箱式自动化立体仓库(Mini-load),

    Ø  料箱存储系统 - 多层穿梭车

    Ø  料箱存储系统 - 四向穿梭车

    总成本最优

    指在在满足客户的存储和效率要求时,通常基于同一个仓库或不同的仓库,有多种可行的设计方案。各自成本项目间常常是此消彼涨的状态,是Trade-off。此时,我们需要根据总成本最优的分析方法来寻找服务合同期内经济效益最优的解决方案。当然有些电商项目,客户的设计是以效率优先作为原则,我们下次可以探讨此话题。

    93f6201f223c202ba69f16cd276b3500.png

    0cf4ff31e6a13c39d92dab90218d3ddd.png

    03c373c8b168b3f7880f13595995ce4b.png

    其他考虑因素

      合理的存储方案设计,需要兼顾成本、效率、安全性、可靠性、通用性、可操作性等。

    Ø  效率:避免方案设计本身有缺陷,满足不了效率要求或产生操作瓶颈。

    Ø  安全性:存储方案应规避设备本身和人员操作中存在的安全隐患。

    Ø  峰值:高峰时段的操作如何来保证,有无替代或补充方案满足操作货量。

    Ø  可靠性:存储系统的稳定可靠,故障率低,当故障发生时有应急和替代方案。

    Ø  通用性:既要考虑定制客户项目的特殊性也要兼顾其他客户项目的通用性。

    Ø  可操作性:操作团队经过培训后容易上手,不会误操作。

    在实际的存储方案设计中,还有很多的沟沟坎坎,也涉及到当操作颗粒度变化下设计的柔性问题。希望下次再做探讨。

    感谢您的阅读,期待合作,长按图片关注公众号。

    如需咨询请联系孙先生 Email:Support@sh-sryl.com , Tel: 13472449940 或 季先生 13818803058   

                     78f535808cfb478e20a9a8483828a7ce.png

    b72805c6a6e18219707af4c17f70ebe7.png

    展开全文
  • 所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是L...

     L公司有N个工厂,由高到底分布在一座山上。如图所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内
    陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象
    部门的电话,被告知三天之后将有一场暴雨,于是L先生决定紧急在某些工厂建立一些仓库以免产品被淋坏。由于
    地形的不同,在不同工厂建立仓库的费用可能是不同的。第i个工厂目前已有成品Pi件,在第i个工厂位置建立仓库
    的费用是Ci。对于没有建立仓库的工厂,其产品应被运往其他的仓库进行储藏,而由于L公司产品的对外销售处设
    置在山脚的工厂N,故产品只能往山下运(即只能运往编号更大的工厂的仓库),当然运送产品也是需要费用的,
    假设一件产品运送1个单位距离的费用是1。假设建立的仓库容量都都是足够大的,可以容下所有的产品。你将得到
    以下数据:1:工厂i距离工厂1的距离Xi(其中X1=0);2:工厂i目前已有成品数量Pi;:3:在工厂i建立仓库的费用
    Ci;请你帮助L公司寻找一个仓库建设的方案,使得总的费用(建造费用+运输费用)最小。

    Input

      第一行包含一个整数N,表示工厂的个数。接下来N行每行包含两个整数Xi, Pi, Ci, 意义如题中所述。

    Output

      仅包含一个整数,为可以找到最优方案的费用。

    Sample Input

    3
    0 5 10
    5 3 100
    9 6 10

    Sample Output

    32

    Hint

      在工厂1和工厂3建立仓库,建立费用为10+10=20,运输费用为(9-5)*3 = 12,总费用32。如果仅在工厂3建立仓库,建立费用为10,运输费用为(9-0)*5+(9-5)*3=57,总费用67,不如前者优。

    【数据规模】

      对于100%的数据, N ≤1000000。 所有的Xi, Pi, Ci均在32位带符号整数以内,保证中间计算结果不超过64位带符号整数。 


        题不是很难,dp方程推错了两次(每次都是从n往前),于是无限WA...第三次终于推对了。。(说完一堆废话赶快写正解)

      朴素dp的方程(公式编辑器坏了,只能用画图了,请谅解)

    $f\left [ i \right ] = \min\left \{ f\left [ j \right ] + \sum_{k = j + 1}^{i - 1}\left ( x_{i} - x_{k} \right )p_{k} \right \} + c_{i}$

      一看是三维,死得没有悬念,只能想办法优化。Sigma一在更不好优化,只能先展开

        发现P的求和和xP的求和都是可以用前缀和搞定的,于是设,sump[i] = P1 + P2 + ... + Pi,sumxp[i] = x1P1 + x2P2 + ... + xiPi

        于是方程变成        f[i] = min{f[j] + xi(sump[i - 1] - sump[j]) - sumxp[i - 1] + sump[j]} + Ci

        现在假设能转移到状态i的有两个状态j, k(j < k),如果j比k优,那么

    f[j] + xi(sump[i - 1] - sump[j]) - sumxp[i - 1] + sump[j] < f[k] + xi(sump[i - 1] - sump[k]) - sumxp[i - 1] + sump[k]

        拆括号化简

    f[j] - xisump[j] + sump[j] < f[k] - xisump[k] + sump[k]

        右边保留和i有关的单项式

    (f[j] + sump[j]) - (f[k] + sump[k]) < xi(sump[j] - sump[k])

        移项(还是注意不等号的方向)

        于是又愉快地得到了斜率方程,对于状态i,(f[i] + sump[i])作为纵坐标,sump[i]作为横坐标,删掉上凸点,维护一条斜率递增的折线。

    Code

      1 /**
      2  * bzoj
      3  * Problem#1096
      4  * Accepted
      5  * Time:2312ms
      6  * Memory:36464k
      7  */
      8 #include<iostream>
      9 #include<sstream>
     10 #include<cstdio>
     11 #include<cmath>
     12 #include<cstdlib>
     13 #include<cstring>
     14 #include<cctype>
     15 #include<queue>
     16 #include<set>
     17 #include<map>
     18 #include<stack>
     19 #include<vector>
     20 #include<algorithm>
     21 #ifdef    WIN32
     22 #define    AUTO "%I64d"
     23 #else
     24 #define AUTO "%lld"
     25 #endif
     26 using namespace std;
     27 typedef bool boolean;
     28 #define smin(a, b) (a) = min((a), (b))
     29 #define smax(a, b) (a) = max((a), (b))
     30 template<typename T>
     31 inline void readInteger(T& u){
     32     char x;
     33     int aFlag = 1;
     34     while(!isdigit((x = getchar())) && x != '-');
     35     if(x == '-'){
     36         aFlag = -1;
     37         x = getchar();
     38     }
     39     for(u = x - '0'; isdigit((x = getchar())); u = u * 10 + x - '0');
     40     ungetc(x, stdin);
     41     u *= aFlag;
     42 }
     43 
     44 template<typename T>
     45 class IndexedDeque{
     46     public:
     47         T* list;
     48         int pfront;
     49         int prear;
     50         IndexedDeque():list(NULL), pfront(0), prear(0){        }
     51         IndexedDeque(int size):pfront(0), prear(0){
     52             list = new T[size];
     53         }
     54         void push_front(T x){    list[--pfront] = x;        }
     55         void push_back(T x)    {    list[prear++] = x;        }
     56         void pop_front()    {    ++pfront;                }
     57         void pop_back()        {    --prear;                }
     58         T     front()        {    return list[pfront];    }
     59         T     rear()            {    return list[prear - 1];        }
     60         T& operator [](int pos){            return list[pfront + pos];        }
     61         int size()            {    return prear - pfront;    }
     62 };
     63 
     64 template<typename T>
     65 inline void aalloc(T*& array, int size){    array = new T[(const int)(size + 1)];    }
     66 
     67 int n;
     68 long long* sump;
     69 long long* sumxp;
     70 int* c;
     71 int* x;
     72 long long* f;
     73 IndexedDeque<int> que;
     74 
     75 long long y_pos(int i)    {    return f[i] + sumxp[i];    }
     76 double slope(int j, int k)    {    return (y_pos(j) - y_pos(k)) * 1.0 / (sump[j] - sump[k]);    }
     77 double cmpSlope(int i, int j, int k) {    return slope(j, k) - x[i];    }    
     78 
     79 inline void init() {
     80     readInteger(n);
     81     aalloc(sump, n);
     82     aalloc(sumxp, n);
     83     aalloc(c, n);
     84     aalloc(x, n);
     85     aalloc(f, n + 1);
     86     sump[0] = sumxp[0] = x[0] = 0;
     87     for(int i = 1, p; i <= n; i++){
     88         readInteger(x[i]);
     89         readInteger(p);
     90         readInteger(c[i]);
     91         sump[i] = sump[i - 1] + p;
     92         sumxp[i] = sumxp[i - 1] + x[i] * 1LL * p;
     93     }
     94 }
     95 
     96 inline void solve() {
     97     que = IndexedDeque<int>(n + 5);
     98     f[0] = 0;
     99     que.push_back(0);
    100     for(int i = 1; i <= n; i++) {
    101         while(que.size() > 1 && cmpSlope(i, que[0], que[1]) < 0)    que.pop_front();
    102         int j = que.front();
    103         f[i] = f[j] + x[i] * (sump[i - 1] - sump[j]) - sumxp[i - 1] + sumxp[j] + c[i];
    104         while(que.size() > 1 && slope(que[que.size() - 2], que[que.size() - 1]) >= slope(que[que.size() - 1], i))    que.pop_back();
    105         que.push_back(i);
    106     }
    107     printf(AUTO"\n", f[n]);
    108 }
    109 
    110 int main() {
    111     init();
    112     solve();
    113     return 0;
    114 }

    转载于:https://www.cnblogs.com/yyf0309/p/6357763.html

    展开全文
  • 一个Hive查询生成多个map reducejob,一个mapreducejob又有map,reduce,spill,shuffle,sort等多个...在开始之前,先把MR的流程帖出来(摘自Hadoop权威指南),方便后面对照。另外要说明的是,这个优化只是针对Hive
  • Hive查询生成多个mapreducejob,一个mapreducejob又有map,reduce,spill,shuffle,sort等多个阶段,所以针对hive查询的优化可以大致分为针对MR中单个步骤的优化,针对MR全局...在开始之前,先把MR的流程帖出来(摘
  • 【bzoj1096-仓库建设】斜率优化 dsy1096: [ZJOI2007]仓库建设 【问题描述】 L公司有N个工厂,由高到底分布在一座山上。如所示,工厂1在山顶,工厂N在山脚。 由于这座山处于高原内陆地区(干燥...
  • CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,...放在Github的资源在国内加载速度比较慢,因此需要使用CDN加速来优化网站打开速度,j...
  • 一个Hive查询生成多个map reduce job,一个map reduce job又有map,reduce,spill,shuffle,sort等多个阶段,所以针对hive查询的优化可以大致分为针对MR中单个步骤的优化(其中又会有细分),针对MR全局的优化,和...
  • 所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是L...
  • 所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内 陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象 部门的电话,被告知三天之后将有一场暴雨,...
  • 所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是L...
  • 1096: [ZJOI2007]仓库建设 Time Limit: 10 SecMemory Limit: 162 MBSubmit: 3719Solved: 1633[Submit][Status][Discuss] Description  L公司有N个工厂,由高到底分布在一座山上。如所示,工厂1在山顶,...
  • 所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内 陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象 部门的电话,被告知三天之后将有一场暴雨,...
  • 1096: [ZJOI2007]仓库建设 Time Limit:10 SecMemory Limit:162 MBSubmit:5482Solved:2448[Submit][Status][Discuss] Description  L公司有N个工厂,由高到底分布在一座山上。如所示,工厂1在山顶,工厂N在...
  • 所示,工厂1在山顶,工厂N在山脚。由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是L...
  • 1096: [ZJOI2007]仓库建设 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1096 Description L公司有N个工厂...
  • 1096: [ZJOI2007]仓库建设 Time Limit: 10 SecMemory Limit: 162 MBSubmit: 4996Solved: 2230[Submit][Status][Discuss] Description  L公司有N个工厂,由高到底分布在一座山上。如所示,工厂1在山顶,工厂N...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 718
精华内容 287
关键字:

仓库优化图