首页 文章 精选 留言 我的

精选列表

搜索[提示词调教],共10000篇文章
优秀的个人博客,低调大师

各执一词,民用安防市场现状看法PK

平安城市、平安社区等工程在全国各地深入推进,全民安防理念已经基本形成,这为民用安防的发展提供了土壤。以此为背景,民用安防以黑马之势在安防市场中杀出重围,成为不可小觑的一股新势力。 早几年众多安防企业纷纷看中了这片新的蓝海,然而随着加入民用安防市场的企业越来越多,竞争变得激烈,昔日的蓝海已经变成红海。那么,现在来看民用安防市场究竟是一片值得安企安心进入的盈利丰厚的市场,还是一片血雨腥风、盈利困难的市场?对于这个问题安防业内人士各有各的看法和说法,在这里一一进行列举—— 市场空间巨大VS消费者不买账 有人说:根据马斯洛需求理论,安全需求是人的基本需求,近年来,我国城镇化进入高速发展时期,人们的生活水平得到改善,人们的安全意识得到提高,越来越多的人们意识到家庭安防的重要性。据统计,在中国有3亿多个家庭,城镇居民家庭大约2亿户,如果有四分之一的城镇居民家庭购买安防产品系统的话,预期购买总量将达到5000万套,按每套1000元计算,市场规模将达到500亿元。再加上小型企业、超市等机构的安防需求,更将扩大这一市场的规模。 目前我国民用安防市场仅占安防市场总产值的6%,而美国作为国际领先的安防市场,民用市场产值占总产值的50%以上,世界平均水平也在10%左右。我国人均安防产品的支出更是远落后于欧美和日本等发达国家,是英国的1/9、美国的1/7,与周边国家包括韩国相比,也存在很大的差距,只有韩国的1/5。 显而易见,从国外的民用安防市场态势来看,国内的民用安防在未来的发展潜力是巨大的,个人用户对家庭安防产品有着巨大的潜在需求,就我国现在的情况来说,国内家庭安防市场大门刚刚打开,行业仍处于萌芽阶段,是尚待开发的沃土。 然而也有人说:民用安防产品在一些发达国家的普及率达到70%左右,而国内市场的普及率相对很低。欧美国家民用安防市场现在已经得到了比较充分的发展,已经解决了概念灌输和需求引导的问题。国内市场由于网络基础、经济水平、文化素质、消费观念、大众安防意识、住宅环境、隐私安全等诸多原因,消费者对民用监控产品的认识度普遍不高。大多数家里都没有安装过监控摄像机,很多消费者都觉得家里并没有安装摄像机的必要,对监控摄像机的专业知识更谈不上了解,安装有监控摄像机的店铺也比例不高。 另外,对于消费者来说,更多的目光并不是放在产品的技术含量上,更多的关注家庭安防产品能否像其他电器一样易买、易装、易用,能否做到即插即用。然而很多消费者表示,目前的民用安防产品安装复杂,使用过程也很麻烦。民用安防产品作为用户主观性很强的产品,用户很容易用脚投票,直接选择不使用。一旦大多数消费者选择不使用,即使产品再好,在民用市场也是没有多大市场空间的。 不愿意透露姓名的安防人士表示,作为安防行业的龙头老大,海康威视和大华股份的民用安防子公司萤石和乐橙,近两年的销量数据并不理想。其他的一些相对不出名的品牌销量更是惨淡。 努力创新迎合消费者需求VS山寨横行 有人说:很多企业已经意识到民用安防民用市场创新的重要性,纷纷在产品研发上加大力度,力求在最短的时间内研发出引领民用安防市场的新产品、新技术。从智能,安全,美观,实惠等等方面进行创新。 智能,从操作方面来说考虑到大众对产品原理不了解,若产品操作不智能,则不能赢得大众的青睐。因此民用安防厂商们正在朝着智能化的方向进行创新。 安全,在安防类产品,首先要做到信息安全,不被第三方所控制,同时画面不外泄,数据不丢失,接着就是此产品若能在某种功能上给入侵者一个威慑也是在他们选择范围内,因此信息安全对于终端用户选择的最后抉择有着重大的意义。因此,信息安全也是民用安防厂商的重点创新方向。 美观,民用安防产品作为家用产品的一部分,消费者对于安防产品是否美观,是否可以成为家里的一件装饰品表现得很在意。因此对厂家而言,在产品外观设计方面,更加追求精美和个性化,符合普通大众的审美观。 实惠,民用市场对于价格相当敏感,要做好这个市场,质优价廉与简洁易用是制胜法宝。以海康威视、大华股份等安防巨头为首,民用安防企业纷纷推出几百元的摄像机产品。知名厂商的降价行为,让民用市场持续放量,市场更加的宽广。 同时,民用安防作为to C的产品,众多安防企业纷纷选择电商模式,减少销售环节,让利给消费者,以求带动市场需求。 然而也有人说:产品同质化严重影响着民用安防市场的健康发展,企业在产品研发上投入不足,对品牌的维护和提升重视不够,厂家之间的实力参差不齐。多数企业对产品规划缺乏技术性创新。 市场上山寨横行,网上各种热销的几十块的家用摄像机、十几元的防盗报警器,销量比一些品牌产品高得多。善于跟风,对风口敏感的山寨企业已经开始在民用安防市场行动起来了。 民用安防市场企业鱼龙混杂,大部分企业规模小,不少是山寨工厂、三无企业,缺乏有技术含量和竞争力的公司。这一情况也导致目前市场上民用安防产品纷繁芜杂,产品同质化、低劣化、不稳定、服务差,同时伴随着低价倾销的现象,严重影响了广大用户的利益。 正是出于以上原因,作为消费者不敢买、不敢用,即使想要买,品牌产品价格难以接受,山寨产品不放心,且方案却过于复杂,非品牌产品质量和售后难以保证,导致消费者不知道该选择什么品牌,什么产品。 天时、地利、人和VS时机不成熟 有人说:民用安防市场发展“天时、地利、人和”,主要体现在以下几点: 1)基础网络的健全和提速,智能手机的普及和移动应用的发展,使得基于移动互联网应用的民用安防产品有了发展的土壤和爆发的条件; 2)物联网概念,无线技术和互联理念的成熟,政府和行业对智慧城市建设,智慧家庭概念的推广等,让大家对民用安防产品的需求和接受程度越来越高; 3)随着生活水平的提高,大家更多追求个性化的高品质高安全生活,对新生事物进行尝试的欲望也大大提高了,借助高科技来改善家庭生活,也成为更多人的选择; 4)安防行业经过10多年的高速发展,竞争日趋激烈,行业龙头们需要新的增长点来保持公司的持续增长,并持续体现创新活力; 然而也有人说:众所周知,安防民用市场从2000年就开始不断的提出发展契机的观点,但是由于各种条件不成熟,包括人们的安防意识、网络基础环境、相应技术发展等因素的限制,这块应用一直没有“爆发式”发展起来。 1)消费者安防意识不足 国内市场由于网络基础、经济水平、文化素质、消费观念、大众安防意识、住宅环境等诸多原因,消费者对民用监控产品的认识度普遍不高。大多数家里都没有安装过监控摄像机,很多普通的消费者都觉得家里并没有安装摄像机的必要。 2)基础网络环境制约 民用市场的发展,与移动互联网技术的发展息息相关。用户可以通过手机就能随时掌握家中的环境。 以安防监控市场为例,安防监控市场已经走入了智能化时代,用户对于可视化的要求也越来越高,视频清晰度不断提升,所以这就对网络的带宽提出了比较高的要求,再加上流量费用较高的影响,民用安防产品的执行效率还比较低下。 3)技术与市场问题 近年来,安防行业有大量的公司开始涉足民用安防领域,比如视频监控、家居防盗、智能门禁等,民用市场虽然说存在很大发展空间,但是从效果来看,安防民用市场推广并没有达到预期效果。这与传统安防产品专业性和系统性较强有很大关系,由于大部分安防产品安装和应用需要专业人士进行指导或培训,这就给个人、家庭、小企业等运用监控设备带来困扰,国内城市以小区为主,人防成本较低,这都阻碍了民用安防的发展。 政策利好,标准支持 VS 标准滞后制约发展 有人说:在国家政策的大力扶持下,平安城市、平安社区等工程在全国各地深入推进,全民安防理念已经基本形成。这为民用监控的快速扩展奠定了坚实的群众基础。 从2012年起,我国陆续展开“宽带中国”战略,提出用几年的时间对我国的互联网传输进行“降价提速”。这项工程由工信部实施,争取国家政策和资金支持,加快推进3G和光纤宽带网络发展,扩大覆盖范围。 国务院印发“宽带中国”战略及实施方案,将“宽带中国”计划正式上升为国家战略,把“宽带网络”定位为经济社会发展的“战略性公共基础设施”。在提高宽带网络应用水平方面,《方案》提出要进一步壮大云计算、物联网、移动互联网、智能终端等新一代信息技术产业。宽带中国上升至国家战略,补齐民用监控发展短板,为安防民用化铺路。 2008年,我国首部专门针对住宅小区安防的推荐性标准《住宅小区安全防范系统通用技术要求》正式实施。该《要求》对住宅小区的监控中心、楼栋门口、围墙栅栏、视频监控系统等都作出规定,为小区安防建设多了一项行业标准,小区安防建设开始走上标准化进程。政府的政策出台为无序的市场竞争树立了规范和标准,使家用安防市场更加健康地向前发展。 然而也有人说:市场整体混乱,标准滞后、不统一等问题,像是一道墙横在整个安防民用市场的面前,制约着行业的前行。 在如今的安防市场上,仅有金融、文博、交通、学校等部门对产品的要求制定了较为严格的行业标准。而在其他领域上,或者没有相关标准,或者标准滞后,也并没有强制推行。这也是民用安防市场至今还没有得到大面积普及的根本原因。 由于缺乏标准,民用安防产品难以上升到更高的平台,系统集成商无法将市场上同类型的产品用于同一平台上,当市场上的同类产品无法兼容时,消费者就要走更多的弯路。安防产品要走向大众市场,必须要有比较健全的标准。 安防产业之所以缺乏标准,一方面在于产品更新换代速度太快,标准跟不上技术的发展;另一方面则在于标准的制定程序太复杂。 总结 小编对于以上说法,并不做主观判断,看完上文,我想大家对于民用安防究竟是盈利丰厚的市场,还是一片血雨腥风、盈利困难的市场自有判断。 ====================================分割线================================ 本文转自d1net(转载)

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

KCL v0.4.6 alpha 发布,更多 Kubernetes 工具集成、IDE 错误提示

简介 KCL 团队很高兴地宣布 KCL v0.4.6-alpha.1 版本现在已经可用! 您可以在KCL v0.4.6-alpha.1 发布页面或者KCL 官方网站获得 KCL 二进制下载链接和更多详细发布信息。 KCL是一个开源的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置和策略的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更快的自动化集成和良好的生态延展性。 发布内容 包含数字、字面值、括号等词法错误恢复 KCL IDE 插件支持错误和告警显示,跳转等能力 部分编译器报错改善 KCL Playground 支持代码分享能力 Kubernetes KPT 工具集成方案设计 Kubernetes Helm KCL 工具插件方案 下一步计划 KPM 包管理工具正式发布 更多 KCL 编译器语法错误恢复支持新版 IDE 插件发布,性能预计提升 20 倍 Helm,KPT 等 Kubernetes 工具 KCL 集成正式发布 常见问题及解答 详见KCL 常见问题 其他资源 感谢所有 KCL 用户在此次版本更新过程中提出的宝贵的反馈与建议。更多其他资源请参考: KCL 网站 Kusion 网站 KCL Github 仓库 Kusion Github 仓库 Konfig Github 仓库 欢迎加入我们的社区进行交流 👏👏👏

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

Android 自定义垂直,旋转,圆形进度提示 自定义Seekbar

SeekBar是用来调节参数值的,系统默认的一般都不太适合我们,需要我们自定义, 里面也有一个RxJava背压的具体应用 废话不多说,看图 package com.example.helang.seekbar; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; import io.reactivex.ObservableEmitter; import io.reactivex.ObservableOnSubscribe; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; /** * 自定义拖动seekBar */ public class CustomSeekBar extends View { private static final String TAG = "CustomSeekBar"; private static final int radius = 65;//中间圆形进度条的半径 private static final int thumbSize = 200; private int backgroundLineSize = 10;//背景线的宽度 private int foregroundLineSize = 18;//进度的宽度 private int lineSize;//整条背景线的长度 private float touchY; private Bitmap thumbBitmap; private Paint paint; private Paint circlePaint;//绘制进度条的paint private RectF backgroundLineRect = new RectF();//背景矩形 private RectF foregroundLineRect = new RectF();//进度矩形 private float currentDegrees = 0;//当前的进度,百分比例,不带百分号 private OnProgressListener onProgressListener; public void setOnProgressListener(OnProgressListener onProgressListener) { this.onProgressListener = onProgressListener; } public CustomSeekBar(Context context) { this(context,null); } public CustomSeekBar(Context context, @Nullable AttributeSet attrs) { this(context, attrs,0); } public CustomSeekBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initBitmap(); initPaint(); } /** * init bitmap */ private void initBitmap(){ thumbBitmap = drawableToBitmap(thumbSize,getResources().getDrawable(R.drawable.circle)); } /** * init paint */ private void initPaint() { paint = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setTextSize(10); //初始化圆形进度条的Paint circlePaint = new Paint(); circlePaint.setAntiAlias(true); // 抗锯齿 circlePaint.setDither(true); // 防抖动 circlePaint.setStrokeWidth(10); circlePaint.setShader(null); // 清除上一次的shader circlePaint.setStyle(Paint.Style.STROKE); // 设置绘制的圆为空心 circlePaint.setShadowLayer(10, 10, 10, Color.RED); circlePaint.setColor(Color.BLUE); // 设置圆弧的颜色 circlePaint.setStrokeCap(Paint.Cap.ROUND); // 把每段圆弧改成圆角的 } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); drawLine(canvas); drawThumb(canvas); drawCircleProgress(canvas); } /** * draw circle * @param canvas */ private void drawCircleProgress(Canvas canvas){ RectF oval = new RectF(thumbSize/2-radius, thumbSize/2-radius, thumbSize/2+radius, thumbSize/2+radius); // 圆的外接正方形 float alphaAngle = currentDegrees * 360.0f / 100 * 1.0f; // 计算每次画圆弧时扫过的角度,这里计算要注意分母要转为float类型,否则alphaAngle永远为0 canvas.drawArc(oval, -90, alphaAngle, false, circlePaint); } /** * draw thumb * @param canvas */ private void drawThumb(Canvas canvas){ //添加旋转,Matrix是Bitmap旋转的关键,用于bitmap一些补间动画的操作 canvas.translate((getWidth()-thumbSize)/2,(100-currentDegrees)/100*lineSize); Matrix matrix = new Matrix(); matrix.setRotate(currentDegrees*10,thumbSize/2,thumbSize/2); canvas.drawBitmap(thumbBitmap,matrix,null);//旋转背景 } /** * draw lines * @param canvas */ private void drawLine(Canvas canvas){ //绘制背景线 backgroundLineRect.set((getWidth()-backgroundLineSize)/2,thumbSize/2, (getWidth()+backgroundLineSize)/2, getParentHeight()-thumbSize/2); lineSize = getParentHeight() - thumbSize;//去掉被thumb挡住的一部分长度 paint.setColor(Color.rgb(61,82,89)); canvas.drawRoundRect(backgroundLineRect, backgroundLineSize/2, backgroundLineSize/2, paint); //绘制进度线 paint.setColor(Color.rgb(90,189,220));//进度线的颜色 foregroundLineRect.set((getWidth()-foregroundLineSize)/2, (getParentHeight()-thumbSize)*(100-currentDegrees)/100+thumbSize/2, (getWidth()+foregroundLineSize)/2,getParentHeight()-thumbSize/2); canvas.drawRoundRect(foregroundLineRect,foregroundLineSize/2,foregroundLineSize/2,paint); } /** * get ParentHeight * @return */ private int getParentHeight(){ return getHeight(); } @Override public boolean dispatchTouchEvent(MotionEvent event) { return super.dispatchTouchEvent(event); } @Override public boolean onTouchEvent(MotionEvent event) { if (!isEnabled()) return true; switch (event.getAction()) { case MotionEvent.ACTION_DOWN: touchY = event.getRawY();//记录开始的Y值 break; case MotionEvent.ACTION_MOVE: currentDegrees += (touchY-event.getRawY())*1f/(getParentHeight())*100.0f;//当前进度值(100为满) if (currentDegrees > 100){//超出去的不计算,默认为100 currentDegrees = 100; } if (currentDegrees<0){//超出去的不计算,默认为0 currentDegrees = 0; } if (observableEmitter != null){//使用背压发送 observableEmitter.onNext(1); }else {//直接发送 sendProgress(); } touchY = event.getRawY(); invalidate(); break; case MotionEvent.ACTION_CANCEL: break; case MotionEvent.ACTION_UP: break; } return true; } private ObservableEmitter<Integer> observableEmitter; /** *增加背压,防止发射拖动的事件过快,导致内存溢出 */ public void addBackPressure(){ Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer> emitter) throws Exception { observableEmitter = emitter; } }).sample(500, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Integer>() { @Override public void accept(Integer integer) throws Exception { sendProgress(); } }); } /** * 发送进度 */ private void sendProgress(){ if (onProgressListener != null){ onProgressListener.onProgress(currentDegrees); } } /** * 设置当前进度 * @param currentDegrees */ public void setCurrentDegrees(float currentDegrees){ this.currentDegrees = currentDegrees; invalidate(); } public interface OnProgressListener{ void onProgress(float progress); } /** * make a drawable to a bitmap * @param drawable drawable you want convert * @return converted bitmap */ private Bitmap drawableToBitmap(int size, Drawable drawable) { Bitmap bitmap = null; if (drawable instanceof BitmapDrawable) { BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; bitmap = bitmapDrawable.getBitmap(); if (bitmap != null && bitmap.getHeight() > 0) { Matrix matrix = new Matrix(); float scaleHeight = size * 1.0f / bitmapDrawable.getIntrinsicHeight(); matrix.postScale(scaleHeight, scaleHeight); bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); return bitmap; } } bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); return bitmap; } } Demo地址:https://github.com/helang1991/SeekBar 喜欢的就加个Star,谢谢

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册