• 关于

    android 数据库源码

    的搜索结果

问题

android上实现人脸识别功能

如题,小弟想在android上实现一个基于人脸识别的功能,大致的实现框架是这样的: 1.通过前置照相机捕捉到人的脸部特征 2.将人的脸部特征通过一些算法(网上查看诸如adaboost算法,PCA算法)取得特征值,然后ID化 3.将人脸ID化...
爵霸 2019-12-01 19:55:18 1662 浏览量 回答数 1

问题

下载Android源码及git安装所引发的redmine权限问题?报错

1.在ubuntu12.04中下载android源码,按照大多数资料上介绍的方法,    先创建~/bin文件,然后添加路径PATH=~/bin:...
爱吃鱼的程序员 2020-06-22 19:46:55 0 浏览量 回答数 1

回答

你可以把默认的db文件先放到assets目录下,应用首次启动时复制到SD卡的指定目录,然后将Android源码SQLiteOpenHelper.java拷贝出来自己修改数据库引用的路径为指定的SD卡路径就行了。 这个错误遇到过,是因为文件路径错误,断点调试下吧
爱吃鱼的程序员 2020-06-22 18:50:01 0 浏览量 回答数 0

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

回答

Android ORM 框架之 ActiveAndroid 最近研究了一下Android中的ORM框架,其一是ActiveAndroid,ActiveAndroid算是一个轻量级的ORM框架,配置,使用还都算是比较简单的。 初始化Jar包 Github地址,下载源代码 打开CMD,进入源码根目录 执行ant jar包生成,可以在dist文件夹里找到。 工程配置 在AndroidManifest.xml中需要添加数据库名和版本号 如果这两个都不写的话,默认会是Application.db,库版本号为1。 在Application中初始化 可以继承com.activeandroid.app.Application,可以在自己的Application里初始化,看com.activeandroid.app.Application文件就明白了: public class Application extends android.app.Application { @Override public void onCreate() { super.onCreate(); ActiveAndroid.initialize(this); } @Override public void onTerminate() { super.onTerminate(); ActiveAndroid.dispose(); } } 所以如果不继承只需要在自己的Application 添加ActiveAndroid.initialize(this)和 ActiveAndroid.dispose()的操作即可。
python小菜菜 2020-06-19 15:00:40 0 浏览量 回答数 0

回答

一、 Afinal官方介绍:Afinal是一个Android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。详情请通过以下网址查看。Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用;使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。项目地址:https://github.com/yangfuhai/afinal功能:一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。优点:功能比较全面,文档完善,代码效率比较高。缺点:没有项目demo,框架的时间比较久,代码冗余比较多(这也是无可避免的),文档比较老跟不上代码更新进度。(这个评价是其他高人评的,他自己也有写了框架。我个人觉得以前Afinal算是经典了 用的人多)。二、 xUtilsGit地址:https://github.com/wyouflf/xUtilsxUtils:可以说是Afinal的升级版。xUtils 包含了很多实用的android工具。xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls 最低兼容android 2.2 (api level 8)三、 ThinkAndroid项目地址:https://github.com/white-cat/ThinkAndroid官方介绍:ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块,具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能,在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类,如日志管理,配置文件管理,android下载器模块,网络切换检测等等工具优点:功能看起来比较完善。个人觉得名字起的好。缺点:从2013年就停止维护了,没有项目文档。四、 LoonAndroid官方介绍:如果你想看ui方面的东西,这里没有,想要看牛逼的效果这里也没有。这只是纯实现功能的框架,它的目标是节省代码量,降低耦合,让代码层次看起来更清晰。整个框架一部分是网上的,一部分是我改的,为了适应我的编码习惯,还有一部分像orm完全是网上的组件。在此感谢那些朋友们。 整个框架式的初衷是为了偷懒,之前都是一个功能一个jar,做项目的时候拉进去,这样对于我来说依然还是比较麻烦。最后就导致我把所有的jar做成了一个工具集合包。 有很多框架都含有这个工具集合里的功能,这些不一定都好用,因为这是根据我个人使用喜欢来实现的,如果你们有自己的想法,可以自己把架包解压了以后,源码拉出来改动下。 目前很多框架都用到了注解,除了androidannotations没有入侵我们应用的代码以外,其他的基本上都有,要么是必须继承框架里面的activity,要么是必须在activity的oncreat里面调用某个方法。 整个框架式不同于androidannotations,Roboguice等ioc框架,这是一个类似spring的实现方式。在整应用的生命周期中找到切入点,然后对activity的生命周期进行拦截,然后插入自己的功能。开源地址:https://github.com/gdpancheng/LoonAndroid功能:1自动注入框架(只需要继承框架内的application既可)2图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)3网络请求模块(继承了基本上现在所有的http请求)4 eventbus(集成一个开源的框架)5验证框架(集成开源框架)6 json解析(支持解析成集合或者对象)7 数据库(不知道是哪位写的 忘记了)8 多线程断点下载(自动判断是否支持多线程,判断是否是重定向)9 自动更新模块10 一系列工具类有点:功能多缺点:文档方面五、 KJFrameForAndroid项目地址:https://github.com/kymjs/KJFrameForAndroid官方介绍:KJFrameForAndroid 又叫KJLibrary,是一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用;KJFrameForAndroid的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。我们提倡用最少的代码,完成最多的操作,用最高的效率,完成最复杂的功能。功能:一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用; KJFrameForAndroid开发框架的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。总共分为五大模块:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。优点:功能比较全面,代码效率很高,文档完善,有项目demo,出来的比较晚借鉴了很多大型框架经验。缺点:项目文档是html页面,查看起来很不方便,项目交流平台没多少人说话(难道大神都是不说话的?)(这两个评价是KJFrameForAndroid的作者对自己的评价,个人觉得作者是个天才。他的评价可能刚写完网上发布后写的。我在给他更新评价。因为现在已经过去了几个月一直在时不时更新。功能很全,项目文档也很全面,而且代码里注释最多 这方面这个很难得。交流平台人很多挺热闹,作者希望更热闹这样框架越来越完善。对于初学者希望看到Demo更完善)六、 dhroid官方介绍:dhroid 是基于android 平台, 极速开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展.使你更快,更好的开发商业级别应用开源地址: http://git.oschina.net/tengzhinei/dhroid功能:1.Ioc容器: (用过spring的都知道)视图注入,对象注入,接口注入,解决类依赖关系2.Eventbus: android平台事件总线框架,独创延时事件,事件管理轻松3.Dhnet: 网络http请求的解决方案,使用简单,减少代码,自带多种网络访问缓存策略4.adapter模块: 数据绑定轻松,不用写多余的adapter,天生网络支持(一行代码搞定加载,刷新问题)5.DhDb: android中sqlite的最轻量orm框架(增删改查轻松搞定)6.Perference: android自带Perference 升级版,让你的Perference更强大,更方便工具集合 JSONUtil(安全处理json),ViewUtil(数据绑定更快) ThreadWorker(异步任务工具)...优点:功能全面,有demo,作者也是为公司开发的框架。缺点:文档方面现在不是很好,就eoe上的那些。七、 SmartAndroid项目地址:http://www.aplesson.com/smartAndroid/demos官方介绍:SmartAndroid是一套给 Android开发者使用的应用程序开发框架和工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。使用 SmartAndroid可以减少代码的编写量,并将你的精力投入到项目的创造性开发上。功能:SmartAndroid 拥有全范围的类库,可以完成大多数通常需要的APP开发任务,包括: 异步网络操作相关所有功能、强大的图片处理操作、轻量级ORM数据库Sqlite库、zip操作 、动画特效、Html等解析采集、事件总线EventBus/Otto、Gson(Json)、AQuery、主流所有UI控件(例如:ActionbarSherlock,SlidingMenu,BottomView,Actionbar,DragListView等10多种UI库)等。优点:功能非常全,超出你索要、文档完善(作者很全面,官方网站是web响应式网站,框架里功能有UI各种特效应该最全了,一直更新中)缺点:jar包大点?(功能多不可避免,不是问题),在线文档(随响应式的手机访问也方便,但是网速慢就不好了,页面打开不是很流畅)八、 andBase官方介绍:andbase是为Android开发者量身打造的一款开源类库产品开源地址:https://code.jd.com/zhaoqp2010_m/andbase功能:1.andbase中包含了大量的开发常用手段。如网络下载,多线程与线程池的管理,数据库ORM,图片缓存管理,图片文件下载上传,Http请求工具,常用工具类(字符串,日期,文件处理,图片处理工具类等),能够使您的应用在团队开发中减少冗余代码,很大的提高了代码的维护性与开发高效性,能很好的规避由于开发疏忽而导致常犯的错误。2.andbase封装了大量的常用控件。如list分页,下拉刷新,图片轮播,表格,多线程下载器,侧边栏,图片上传,轮子选择,图表,Tab滑动,日历选择器等。3.强大的AbActivity,您没有理由不继承它。继承它你能够获得一个简单强大可设置的操作栏,以及一系列的简单调用,如弹出框,提示框,进度框,副操作栏等。4.提供效率较高图片缓存管理策略,使内存大幅度节省,利用率提高,效率提高。程序中要管理大量的图片资源,andbase提供简单的方法,几步完成下载与显示,并支持缩放,裁剪,缓存功能。5.封装了大量常见工具类。包括日期,字符,文件,图片等各种处理函数,多而全。6.用andbase大量减少handler的使用,而采用回调函数,代码更整洁。handler会产生大量代码,并且不好维护,andbase对handler进行了封装。7.简单轻量支持注解自动建表的ORM框架(支持一/多对多的关联操作)。写sql,建表,工作量大,andbase提供更傻瓜异步增删改查工具类。8.异步请求http框架,网络请求标准化,支持文件上传下载,get,post,进度显示。包含了异步与http请求的工具类,实用。9.热情的支持群体。优点:功能很全,demo做的好 、API文档完善、接近完美缺点:希望文档更详细些。九、 AndroidAnnotations项目地址:https://github.com/excilys/androidannotations功能:完全注解框架,一切皆为注解:声明控件,绑定控件,设置监听,setcontentview,长按事件,异步线程,全部通过注解实现。优点:完全的注解,使开发起来更加便利,程序员写的代码也更少。缺点:文档是全英文的加上功能比较少没有具体研究,由于一切都是注解,感觉效率不高,不过根据官方介绍说并不是使用的反射加载,所以效率比一般注解高很多。十、 volley项目地址: https://github.com/smanikandan14/Volley-demo功能:Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮异步加载网络图片、网络数据优点:Google官方推荐,请看去年的开发者大会介绍。缺点:功能比较少,只有网络数据加载和网络图片加载十一、 android-async-http项目地址:https://github.com/loopj/android-async-http文档介绍:http://loopj.com/android-async-http/ (1) 在匿名回调中处理请求结果 (2) 在UI线程外进行http请求 (3) 文件断点上传 (4) 智能重试 (5) 默认gzip压缩 (6) 支持解析成Json格式 (7) 可将Cookies持久化到SharedPreferences 有点:很简单很实用缺点:功能比较少, (只是针对的功能不是什么缺点)最后来个总结吧: 以上的开发框架网上都可以下载源码,也有demo实例的。当然我没分析和对比框架的效率性能,但是都非常实用,其作者大部分是个人,都是些牛人或天才。你可以直接使用,也可以把有用跳出来用,至少有很多使用工具。如果有发现Bug,作者希望把bug交给他。 Afinal 和 xUtils简单实用但是demo和更新的问题。 KJFrameForAndroid 算是新出的,功能也多,效率也应该好,代码也注释多 用起来也很方便。Dhroid 作者自己公司的框架,也可以直接请教。SmartAndroid 强劲的框架功能俱全。andBase 出来早各个方面算是完整的吧。转自:http://blog.csdn.net/buddyuu/article/details/40503471
元芳啊 2019-12-02 00:55:54 0 浏览量 回答数 0

问题

【Android学习全家桶】155道Android热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动:或许你挑灯夜战只为一道难题或许你百思不解只求一个答案或许你绞尽脑汁只因一种未知那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了他们用户自己手中的技术来帮助用户成长本次活动特邀百位阿里技术专家对android常见问题...
管理贝贝 2019-12-01 20:07:24 2181 浏览量 回答数 2

问题

使用xutils里面的HttpUtils时候如何在servlet中向其传回一个值???

最近在学习使用xutils,这个问题困扰我好久,应该是个小问题但是就是不知道如何解决,网上也搜不到解决方法,问题具体描述:做一个app开发,android端用户输入用户名和密码登录,传值到tomcat那面,servlet连数据库进行核验,这...
爵霸 2019-12-01 19:22:58 979 浏览量 回答数 1

问题

Android安全开发之通用签名风险

Android安全开发之通用签名风险 作者:伊樵、舟海、呆狐@阿里聚安全    1 通用签名风险简介 1.1 Android应用签名机制 阿里聚安全漏洞扫描器有一...
移动安全 2019-12-01 21:14:31 4210 浏览量 回答数 1

回答

.推送方式基础知识:当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如《地震应急通》就需要及时获取服务器上最新的地震信息。要获取服务器 上不定时更新的信息一般来说有两种方法,第一种是客户端使用Pull(拉)的方式,隔一段时间就去服务器上获取信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。 虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push is better than pull。因为Pull方式更费客户端的网络流量,更主要的是费电量。  在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,我会在以后详细介绍IPhone中的解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用几天的时间对Android的推送通知服务进行初步的研究。 在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,起初我就是准备采用这个服务来实现自己手机上的推送功能。  Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。C2DM服务负责处理诸如消息排队等事务并向运行于目标设备上的应用程序分发这些消息。关于C2DM具体使用过程,我会以后的博文中再详细介绍,这里大家先了解下大致方案情况。C2DM操作过程图:但是经过一番研究发现,这个服务存在很大的问题:1)C2DM内置于Android的2.2系统上,无法兼容老的1.6到2.1系统;2)C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用,如果想要很好的使用,我们的App Server必须也在国外,这个恐怕不是每个开发者都能够实现的; 有了上述两个使用上的制约,导致我最终放弃了这个方案,不过我想利用另外一篇文章来详细的介绍C2DM的框架以及客户端和App Server的相应设置方法,可以作为学习与参考之用。 即然C2DM无法满足我们的要求,那么我们就需要自己来实现Android手机客户端与App Server之间的通信协议,保证在App Server想向指定的Android设备发送消息时,Android设备能够及时的收到。几种常见的解决方案1)轮询(Pull):应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池。2)SMS(Push):在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图。这是一个不错的想法,我就见过采 用这个方案的应用程序。这个方案的好处是,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,你很难找到免费的短消息发送网关,关于这个方案的实现。3)持久连接(Push):这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。Apple的推送服务之所以工作的很好,是因为每一 台手机仅仅保持一个与服务器之间的连接,事实上C2DM也是这么工作的。不过这个方案也存在不足,就是我们很难在手机上实现一个可靠的服务。Android操作系统允许在低内存情况下杀死系统服务,所以你的通知服务很可能被操作系统Kill掉了。 前两个方案存在明显的不足,第三个方案也有不足,不过我们可以通过良好的设计来弥补,以便于让该方案可以有效的工作。毕竟,我们要知道GMail,GTalk以及GoogleVoice都可以实现实时更新的。MQTT协议实现Android推送采用MQTT协议实现Android推送 MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。 wmqtt.jar 是IBM提供的MQTT协议的实现。我们可以从这里下载该项目的实例代码,并且可以找到一个采用PHP书写的服务器端实现。架构如下所示:wmqtt.jar 是IBM提供的MQTT协议的实现。我们可以从如下站点下载它。你可以将该jar包加入你自己的Android应用程序中。4.RSMB实现推送:Really Small Message Broker (RSMB) ,他是一个简单的MQTT代理,同样由IBM提供。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。SAM是一个针对MQTT写的PHP库。我们可以从这个下载它.send_mqtt.php是一个通过POST接收消息并且通过SAM将消息发送给RSMB的PHP脚本。Really Small Message Broker (RSMB) ,他是一个简单的MQTT代理,同样由IBM提供。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。XMPP协议实现Android推送这是我在项目中采用的方案。事实上Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。 XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。关于XMPP协议我在上篇博文中已经介绍,大家可以参考:http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378956.htmlandroidpn是一个基于XMPP协议的java开源Android push notification实现,我会在以后的博文中详细介绍androidpn。它包含了完整的客户端和服务器端。经过源代码研究我发现,该服务器端基本是在另外一个开源工程openfire基础上修改实现的,不过比较郁闷的是androidpn的文档是由韩语写的,所以整个研究过程基本都是读源码。实现意图如下图所示:androidpn 客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要 自己编译,可以直接把androidpn客户端里面的asmack.jar拿来使用。客户端利用asmack中提供的XMPPConnection类与服 务器建立持久连接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通知。androidpn服务器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采用的是spring框架,这一点与 openfire是不同的。Androidpn服务器包含两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的 XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器, 负责接收用户的Web请求。服务器架构如下:最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。这个解决方案的最大优势就是简单,我们不需要象C2DM那样依赖操作系统版本,也不会担心某一天Google服务器不可用。利用XMPP协议我们还可以进一步的对协议进行扩展,实现更为完善的功能。 采用这个方案,我们目前只能发送文字消息,不过对于推送来说一般足够了,因为我们不能指望通过推送得到所有的数据,一般情况下,利用推送只是告诉手机端服务器发生了某些改变,当客户端收到通知以后,应该主动到服务器获取最新的数据,这样才是推送服务的完整实现。作者:qq_594336505 来源:CSDN 原文:https://blog.csdn.net/qq_23174861/article/details/51730760 版权声明:本文为博主原创文章,转载请附上博文链接!
auto_answer 2019-12-02 01:48:09 0 浏览量 回答数 0

回答

1.产品2.UI3.CSS4.JS5.后端(Java/php/python)6.DBA(mysql/oracle)7.运维(OP) 8.测试(QA)9.算法(分类/聚类/关系抽取/实体识别)10.搜索(Lucene/Solr/elasticSearch)11.大数据工程师(Hadoop)12.Android13.IOS14.运营 一.产品1 工作内容:了解用户需求,做竞品调研,画产品原型,写产品文档,讲解产品需求,测试产品Bug,收集用户反馈,苦练金刚罩以防止程序员拿刀砍。2 需要技能:PPT,Word, Axure,XP,MVP,行业知识,沟通。 二. UI1 工作内容:收到产品原型,给原型上色,偶尔会自作主张调整下原型的位置,出不同的风格给老板和客户选,然后听他们的意见给出一个自己极不喜欢的风格,最好给Android,IOS或者是CSS做好标注,还有的需要直接帮他们切好图,最后要练出来象素眼,看看这些不靠谱的程序员们有没有上错色或者是有偏差。2 需要技能:PS,Illustrator,Sketch,耐性,找素材。 三. CSS1 工作内容:产品设计好原型,UI做出来了效果图,剩下的就是CSS工程师用代码把静态文件写出来的。 2 需要技能:环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】基础【PS,域名,Html,Html5,CSS,CSS3】扩展【自适应,响应式,Bootstrap,Less,Flex】 四 .JS 1 工作内容:JS工程师其实分成两类,在之前讲CSS的时候已经提到过,一个是套页面的,一个是前后端分离的。对这两个概念还是分不太清的,可以回过头去看CSS的部分。 2 需要技能:环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】基础【Http,REST,跨域,语法,组件,F12,Json,Websocket】框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】业务【金融,教育,医疗,汽车,房产等等等等各种行业】 五 .后端(Java/python/go) 1 工作内容:大部分的后端工程师都停留在功能实现的层面上。这是现在国内二流或者是三流的公司的现状,甚至是在某些一流的公司。很多时候都是架构师出了架构设计,更多的外包公司根本就是有DBA来做设计,然后后端程序员从JS到CSS到Java全写,完全就是一个通道,所有的复杂逻辑全部交给DB来做,这也是几年前DBA很受重视的原因。 2 需要技能:环境【IDE(Idea/Eclipse,Maven,jenkins,Nexus,Jetty,Shell,Host),源码管理(SVN/Git) ,WEB服务器(nginx,tomcat,Resin)】基础【Http,REST,跨域,语法,Websocket,数据库,计算机网络,操作系统,算法,数据结构】框架【Spring,AOP,Quartz,Json TagLib,tiles,activeMQ,memcache,redis,mybatis,log4j,junit等等等等等】业务【金融,教育,医疗,汽车,房产等等等等各种行业】。 六 .DBA  1 工作内容:如果你做了一个DBA,基本上会遇到两种情况。一种是你的后端工程师懂架构,知道怎么合便使用DB,知道如何防止穿透DB,那么恭喜你,你只是需要当一个DB技术兜底的顾问就好,基本上没什么活可以做,做个监控,写个统计就好了。你可以花时间在MongoDB了,Hadoop了这些,随便玩玩儿。再按照我之前说的,做好数据备份。如果需求变动比较大,往往会牵涉到一些线上数据的更改,那么就在发布的时候安静的等着,等着他们出问题。。。。如果不出问题就可以回家睡觉了。 2 需要技能:环境【Linux,Mysql,Oracle,MongoDB,Hadoop】工具【各种DB的版本,工具,备份,日志等】。 七. 运维  1 工作内容:运维的工作大概分成几个部分,我对于修真院学习运维的少年们都这么说,大概是:A。基础环境的搭建和常用软件的安装和配置(兼网管的还有各种程控机),常用软件指的是SVN,Git,邮箱这种,更细节的内容请参考修真院对于运维职业的介绍。B。日常的发布和维护,如刚刚讲到的一样,测试环境和线上环境的发布和记录,原则上,对线上所有的变更都应该有记录。C。数据的备份和服务的监控&安全配置。各种数据,都要做好备份和回滚的手段,提前准备好各种紧急预案,服务的监制要做好。安全始终都是不怎么被重点考虑的问题,因为这个东西无底洞,你永远不知道做到什么程度算是比较安全了,所以大多数都是看着情况来。D。运维工具的编写。这一点在大的云服务器商里格外常见,大公司也是一样的。E。Hadoop相关的大数据体系架构的运维,确实有公司在用几百台机器做Hadoop,所以虽然不常见,我还是列出来吧。 2 需要技能:环境【Linux,Mysql,Oracle,MongoDB,Hadoop,nginx,apache,F5,lvs,vpn,iptable,svn,git,memcache,redis】工具【linux 常用工具,Mysql常用工具,Jenkins,zabbix,nagios】自动化运维【openstack,docker,ansible】语言【shell,python】 八 .QA  1 工作内容:QA需要了解需求,很多公司会要求QA写测试用例,我觉得是扯淡。完全是在浪费时间。通常开发三周,QA测试的时间只有一周到一周半。还有关于提前写测试用例的,都不靠谱。 2 需要技能:流程【Bug修复流程,版本发布流程】工具【禅道,BugZilla,Jira,Excel表格来统计Bug数,自动化测试】性格【严谨,耐心】 九. 算法工程师  1 工作内容:算法工程师的工作内容,大部分时间都是在调优。就是调各种参数和语料,寻找特征,验证结果,排除噪音。也会和Hadoop神马的打一些交道,mahout神马的,我那个时候还在用JavaML。现在并不知道有没有什么更好用的工具了。有的时候还要自己去标注语料---当然大部分人都不爱做这个事儿,会找漂亮的小编辑去做。2 需要技能:基础【机器学习,数据挖掘】工具【Mahout,JavaML等其他的算法工具集】 十. 搜索工程师  1 工作内容: 所以搜索现在其实分成两种。一种是传统的搜索。包括:A。抓取 B。解析C。去重D。处理E。索引F。查询另一种是做为架构的搜索。并不包括之前的抓取解析去重,只有索引和查询。A。索引B。查询 2 需要技能:环境【Linux】框架【Luence,Slor,ElasticSearch,Cassandra,MongoDB】算法【倒排索引,权重计算公式,去重算法,Facet搜索的原理,高亮算法,实时索引】 十一. 大数据工程师  1 工作内容:工作内容在前期会比较多一些,基础搭建还是一个挺讲究的事儿。系统搭建好之后呢,大概是两种,一种是向大数据部门提交任务,跑一圈给你。一种是持续的文本信息处理中增加新的处理模块,像我之前说的增加个分类啦,实体识别神马的。好吧第一种其实我也不记得是从哪得来的印象了,我是没有见到过的。架构稳定了之后,大数据部门的工作并不太多,常常会和算法工程师混到一起来。其他的应该就是大数据周边产品的开发工作了。再去解决一些Bug什么的。2 需要技能:环境【Linux】框架【Hadoo,spark,storm,pig,hive,mahout,zookeeper 】算法【mapreduce,hdfs,zookeeper】。 十二. Android工程师  1 工作内容:Android工程师的日常就是听产品经理讲需求,跟后端定接口,听QA反馈哪款机器不兼容,闹着申请各种测试机,以及悲催的用Android做IOS的控件。 2 需要技能:环境【Android Studio,Maven,Gradle】基础【数据结构,Java,计算机网络】组件【IM,地图,支付,拍照,视频,音频,统计,分享,手势密码】 十三. IOS工程师  1 工作内容:IOS工程师的工作内容真的挺简单的,听需求,定接口。做个适配,抛弃一下iphone4。还有啥。。马丹,以我为数不多的IOS知识来讲,真的不知道还有啥了。我知道的比较复杂的系统也是各种背景高斯模糊,各种渐变,各种图片滤镜处理,其他并没有什么。支付,地图,统计这些东西。 嗯。2 需要技能:环境【Xcode】基础【数据结构,Object,计算机网络】组件【IM,地图,支付,拍照,视频,音频,统计,分享,手势密码】
行者武松 2019-12-02 01:21:45 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档该解决方案适用的移动云产品包括: 移动推送HTTPDNS移动热修复移动用户反馈移动加速移动数据分析 1. 什么是UTDID冲突? Android UTDID包命名形式为:utdid4all-x.x.x.jar,iOS UTDID包命名格式为:UTDID.framework。 UTDID作为阿里集团移动端SDK通用组件,包括阿里云在内的许多平台产品移动端SDK对其有依赖,若同时集成多平台移动端SDK,可能发生UTDID冲突。 2. 怎么解决UTDID冲突? 【注意】Android UTDID版本号必须>= v1.1.5.3,若不能确认UTDID版本号,请参考下述方案,保留阿里云平台的UTDID包。 2.1 手动集成解决方案 手动删除重复的UTDID SDK,仅保留一个UTDID SDK。建议保留阿里云平台下载的UTDID SDK。 2.2 远程仓库集成解决方案 Android集成时,可以通过exclude关闭其他产品SDK对UTDID的传递性依赖,示例如下所示: compile ('com.xxx:xxx.xxx:1.0.1') { exclude (module: 'utdid4all')} 其module名不一定为utdid4all,具体如何关闭UTDID的传递性依赖,可咨询对应产品SDK接口人。 iOS集成时,如果通过CocoaPods进行远程仓库依赖,由于CocoaPods无法关闭传递性依赖,SDK集成需要修改为手动集成。 2.3 与支付宝SDK UTDID冲突 支付宝SDK是通过源码方式集成的UTDID,所以不适用于上述的手动集成解决方案和远程仓库集成解决方案。可下载并集成 剥离UTDID的支付宝SDK,保留阿里云平台的UTDID包。该版本SDK和通用支付宝SDK保持同步更新,无需担心支付宝相关功能受影响。
2019-12-01 23:32:20 0 浏览量 回答数 0

问题

ym—— Android网络框架Volley(体验篇) Homepage Rel?400报错

ym—— Android网络框架Volley(体验篇) Homepage Releases Demo sources Docs Support? 400 报错 Volley是Google I/O 2013推出的网络通信库,...
爱吃鱼的程序员 2020-06-03 15:11:15 1 浏览量 回答数 1

问题

移动推送: 与支付宝的包出现UTDID冲突的解决办法

该解决方案适用的移动云产品包括: 移动推送HTTPDNS移动热修复移动用户反馈移动加速移动数据分析 1. 什么是UTDID冲突? Android UTDID包命名形式为:utdid4all-...
猫饭先生 2019-12-01 21:58:24 1191 浏览量 回答数 0

问题

程序员报错行为大赏-配置报错

Maven本地仓库配置报错:配置报错  GO语言配置什么的都没问题,但就是LiteIDE配置不好。。。:配置报错  Maven 配置nexus仓库 POM文件报错:配置报错  10个你可能从未用过的PHP函数:配置报错  QT...
问问小秘 2020-06-11 13:18:25 6 浏览量 回答数 1

回答

哪位什么不去下载个贪吃蛇源码研究下,然后自己重写? 那为什么不去学习shell? 那为什么不打起精神? 那为什么不去从最基础教材的看起,推导公式什么的学起? 其实我也是菜鸟,刚接触linux和ruby,但是要去迈开那一步,才会看到前方的路。 评论 (2) 引用此回贴 举报 Zoker Zoker 2014/01/18 22:23 回复 @fzfreeguy : 楼下说的对,就是没有目标,我做毕设的时候,只是了解PHP,最基本的语法还得看手册,然后一周不到的时间,写出来了个多博客系统,把你的帽子扔到墙对面去吧! 回复 举报 fzfreeguy fzfreeguy 2014/01/18 22:18 当然想!!!成品一个小软件对我来说这可是一个瓶颈啊!感觉博客什么的能够让我有点存在感,或许会让我打起精神搞个成品出来。不然身边本身没有对软件有共同话题的人的互相督促,很蛋疼+无聊的 回复 举报 0 BlueStragglers BlueStragglers 2014/01/18 22:19 没有目标而已 评论 (2) 引用此回贴 举报 BlueStragglers BlueStragglers 2014/01/18 22:25 这两项都不是等来了,立刻行动吧 回复 举报 fzfreeguy fzfreeguy 2014/01/18 22:21 没有目标+身边没有实体同类 回复 举报 0 elson1024 elson1024 2014/01/19 00:28 别那么浮躁嘛,慢慢来,一定要慢,把数据结构,算法,C,JAVA,这些东西基础都融会贯通,其实就是把基础打扎实这样就可以了,成品啥得都是浮云,基础扎实才能运筹帷幄,决胜于千里之外,很多公司看中得就是你有没有培养的潜力,有计算机协会啥的,加入进去,妹子泡不到,交上基友或许会帮助你一辈子, 评论 (0) 引用此回贴 举报 0 Undeadway Undeadway 2014/01/19 00:42 第一步:把电脑的网络给断了,手机、IPAD之类的封箱了; 第二步:打开 IDE ,然后按F6(或者别的单步调试快捷键),直到把F6按坏掉; 第三步:找个地方(比如OSC)提交你按坏掉 F6 之后的成果, 接受大家的批判。 评论 (0) 引用此回贴 举报 0 兰穆达 兰穆达 2014/01/19 08:32 我和楼主比较类似,前期涉猎很广,只要看到技术就想瞄一眼。 好处是知识面广,懂各种时髦词汇,不过在知识储备完备之后,就应该朝着某一个方向进行深入研究。 我建议动态语言优先选择python,osc有各种代码片段,写一些小的脚本练手,在有一定的手感之后,git一个大项目的源码,尝试自己修改功能。 评论 (0) 引用此回贴 举报 0 caoglish 2014/01/19 09:59 要学好编程,关键不能把兴趣掐没了。至于没有成品,没有关系。进入公司和,领导自然会给你你一个目标的。然后根据他的目标,你编出产品来就行了。 你现在才大一,没有必要一定要搞什么所谓成品。要是要体会编程带来的乐趣和成就感,这样才可以保持你对电脑一直以来的兴趣。 我的学习经验是,图形编程是最容易带来成就感的,因为结果是极度可视化的,你可以观察到你编程的结果,一点小变化就能带来很大的满足感。 学习javascript,现在javascript可以直接在浏览器里面进行2D和3D的图形编程。如果是图形库的话,可以看看three.js(3d图形处理),d3.js, process.js, rapheal.js(2d).或者最简单的,学习jQuery,利用css和动画Api作出一些绚丽图形动画效果。这样也能带来很大的成就感 评论 (0) 引用此回贴 举报 0 jeffsui jeffsui 2014/01/19 10:12 关键是兴趣主导,如果你就是想从事这方面的工作,还是给底子打牢了再说。 评论 (0) 引用此回贴 举报 0 Timco Timco 2014/01/19 13:14 Android 感觉不论前面的经历,还是后头的编程,都是非常非常基础。保持足够的好奇心,学习更深入的知识。尝试阅读成品的源码吧。 评论 (0) 引用此回贴 举报 0 Yashin Yashin 2014/01/21 00:04 楼上说的都对,成品从改开始,核心竞争力: 数据结构,算法,软件工程 评论 (0) 引用此回贴 举报 0 林尘 林尘 2014/01/21 07:33 Android 不要浮躁,把基础学好才是最重要的。
kun坤 2020-06-11 16:55:12 0 浏览量 回答数 0

问题

程序员报错QA大分享(1)

程序员报错QA征集第一弹来了哦~包含QA分享一期征集的部分内容,链接附带解决方案,可收藏哦~ npm install安装依赖一直报错?报错https://developer.aliyun.com/ask/301...
问问小秘 2020-06-18 15:46:14 1684 浏览量 回答数 2

问题

电商网站报错 

【业务需求】 一、开发一个电商网站包含前台,具体要求如下: 软件模块实现技术技术指标软件模块实现技术技术指标手机微信端界面:HTML5技术 服务器数据交互࿱...
kun坤 2020-06-10 13:22:52 26 浏览量 回答数 2

问题

Android数据库一直报错,不知道什么原因了??报错

这个是报错情况: 05-18 12:21:49.976: I/Database(5166): sqlite returned: error code = 1, msg = near "order&...
爱吃鱼的程序员 2020-06-20 19:09:20 0 浏览量 回答数 1

问题

身为 Java 程序员必须掌握的 10 款开源工具!

如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机。 Java世界中存在许多工具,从Eclipse,NetB...
游客pklijor6gytpx 2020-01-13 09:39:45 3667 浏览量 回答数 2

问题

用JavaScript编写一个Java虚拟机?谈谈哗众取宠的BicaVM 400 请求报错 

http://www.cnbeta.com/articles/163172.htm 感谢鹏凌三千的投递 新闻来源:原创 今日目睹某网络新闻,开篇明义便包含如下几行文字【程序员Artur Ventura,这位超级大...
kun坤 2020-05-29 09:57:19 2 浏览量 回答数 1

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动: 或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了 他们用户自己手中的技术来帮助用户成长 本次活动特邀百位阿里技术专家对Java常...
管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

问题

寻找OSS好应用系列之 XDUpdate

名称:XDUpdate 环境:Windows,Linux 作者:Da Xing Github:https://github.com/xingda920813/XDU...
寒喵 2019-12-01 20:54:38 1924 浏览量 回答数 0

回答

手机上有很多云笔记app,大多支持云存储。可是把笔记放在别人的服务器上,总觉得不太安全。所以想把云笔记存在自己家。 有很多开源的云笔记,比如蚂蚁笔记(Leanote),nextcloud-note, 可是建立起来都比较麻烦,当然功能也是很强的。 leanote是golang写的,要mango数据库支持。nextcloud-note需要安装nextcloud云盘系统,需要php+mysql支持。 网上搜了一下, Android,有几款笔记支持webdav同步,比如"一本日记"(要付费),"可乐记"(免费),"易码"(免费)。 苹果,只找到一款免费的。收费的就很多了。"Notebooks for iPhone"(免费), "Notebooks Write and Organize"(收费) 软件自行搜索。 所以尝试自己建个webdav服务器。 尝试 NextCloud nextcloud 支持webdav协议。 买了台迷你pc(x86架构),装CentOS7,安装nginx,php-fpm,mariadb,然后装nextcloud,然后在nextcloud中装notepad插件。 手机端app: nextcloud-note,挺好的,支持markdown。支持多层目录。但只支持配置一个服务器地址。或者说,app只支持一个账号。不能多账号共存。 nextcloud,云盘,也不错,支持文件,图片,通讯录同步。支持多账号共存。 nextcloud 的 webdav 对易码的支持也很好。 nextcloud 云盘的安卓版 APP 本身就可以备份手机通讯录(打包为一个文件,上传到云盘目录) 易码,支持markdown,支持多账号共存。(这个云笔记,我很推荐) nextcloud 对 DAVdroid(DAVx5)2.6.3 支持很好。配置好账号后,通讯录,日历,个人提醒 就都可以同步了。 用了一段时间,发现云盘我基本上没什么需求,为了用个云笔记,建了这么个大东西,感觉挺浪费。 看了看leanote 也挺复杂的,还要装mango数据库。放弃。 尝试只建个webdav服务 apache2,nginx,lighttpd 都支持webdav。 apache2 比较臃肿,放弃。 所以只尝试 nginx 和 lighttpd 。 如果从源码安装,无论什么系统,无论 nginx 或 lighttpd 都能装好webdav服务。 以下是尝试使用系统的预编译包安装和配置。 CentOS7/8 上 从epel源安装nginx,为1.12.2版。(yum install) 发现有http_dav_module,但缺失http_dav_ext. 导致PROPFIND指令不支持。 从nginx-stable源安装nginx,1.16.1版,(yum install) 也是有http_dav_module,没有http_dav_ext。 CentOS7 , CentOS8 的预编译 nginx 都有 http_dav_module, 都缺失了 http_dav_ext。 从epel源装lighttpd,是1.4.54版,(yum install, centos7) 配置好后出错 Sorry, no sqlite3 and libxml2 support include,发现编译时缺少 --with-webdav-props 参数。导致PROPFIND指令没有按要求返回XML内容,而是返回了0字节。 debian-10/Armbian 手上还有台斐讯N1盒子,刷了armbian。debian10(buster)版。 装nginx,1.14.2,(apt install) 有http_dav_module 和 http_dav_ext 。 PUT,DELETE,MOVE,PROPFIND 支持OK。 不知道 COPY,OPTION 支持如何,因为没用到。 不过有bug,nginx要求MKCOL指令跟的目录名,必须以'/' 除号结尾。而易码app在创建目录时,目录名末尾不带除号。 MKCOL 的问题,可以通过配置 rewrite 解决。 所以,易码能用,只是要事先手动把目录创建好。易码保存和更新笔记,没问题。 手动 mkdir mynote/ mynote/assets/ 每个目录中要有assets目录,易码用assets来存放附件。 最终可以完美支持易码。 x86/64 debian-10 的预编译 nginx,完全和 armbian 的 debian10 一样。支持很好。 装lighttpd,1.4.53,(apt install) 有lighttpd-mod-webdav模块。 PUT,DELETE,MKCOL,PROPFIND 支持OK。 不知道 COPY,OPTION 支持如何,因为没用到。 有bug。但MOVE指令总是返回400 Bad request. (lighttpd独立运行在80或88,或通过nginx的proxy_pass到88口,MOVE指令都返回400) 好像是 1.4.53 的 bug, 1.4.54 就修复了。 所以,易码能同步获取更新,能创建新笔记。但不能修改旧笔记(会出错)。 openwrt-19.07 lighttpd-1.4.54 opkg install lighttpd lighttpd-mod-auth lighttpd-mod-authn_file lighttpd-mod-webdav 配置: document-root指向别的目录。其他配置参考本文后面的内容。 "易码"访问,能创建目录,创建新笔记,修改笔记,删除笔记。但不能同步获取笔记的更新,返回 "Not a valid DAV response" 原因是 PROPFIND "目录"(不带/结尾) 重定向 到 "目录/" 的返回码是200 而非 301,易码不能识别。 配置中加入 rewrite 可以解决。 opkg install lighttpd-mod-rewrite,然后配置中加入 url.rewrite-if-not-file=( "^/dav/(.*)$" => "/dav/$1/" ) 最终可以完美支持易码。 nginx-1.17.7 opkg install nginx-all-module (基础包nginx,没有webdav支持) 配置: root指向别的目录。其他配置参考本文后面的内容。 "易码"能用,只是要事先手动把目录创建好。MKCOL指令要求以'/'结尾,表现和 debian10 中的预编译 nginx 一样。 MKCOL 的问题,可以通过配置 rewrite 解决。 最终可以完美支持易码。 nginx 的 webdav 配置 (debian-10里的nginx对webdav支持很好) centos7/8 : (缺少"http_dav_ext",导致PROPFIND不支持,放弃) debian-10/armbian : nginx (支持很好) openwrt-19 : nginx-all-module (支持很好) yum install nginx 或者 apt install nginx 。 在vhost的 server { ... } 中,加上以下一段。则在 http(s)://youdomain.doman/dav/ 中打开webdav。 location ^~ /dav/ { if ($request_method = MKCOL) { # 解决 MKCOL 需要以'/'结尾 rewrite ^(.*[^/])$ $1/ break; } dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS; # 上传文件的最大容量限制,0为不限制 client_max_body_size 20M; create_full_put_path on; dav_access user:rw group:rw all:r; auth_basic "Authorized Users Only"; auth_basic_user_file $document_root/dav/.htaccess.pw.basic ; satisfy any; } .htaccess.pw.basic 用 htpasswd 命令创建。(yum install apache2-utils/apt install apache2-utils) 如果使用"易码",则手动建立存放笔记的目录,同时在这个目录中创建"assets"目录。 如果用其他支持webdav的云笔记,则自己去确定,云笔记需要创建什么目录。 因为页面认证用的是basic,所以不建议用http,不安全。建议用https (ssl)。 ssl 的配置自行上网搜索。 nginx 运行在非标准端口(比如http/8001,https/8443),webdav的功能不影响,也能工作。 关于MKCOL需要以'/'结尾的问题 参考: Nginx WebDAV模块配置简述 , 修复Nginx的WebDAV功能 , 修复Nginx的WebDAV功能 if ($request_method = MKCOL) { rewrite ^(.*[^/])$ $1/ break; } lighttpd 的 webdav 配置 配置文档: Documentation Overview centos7/8 : yum install lighttpd (缺少"--with-webdav-props",导致PROPFIND有问题,放弃) debian-10/armbian : apt install lighttpd lighttpd-mod-webdav (MOVE指令有问题, 等升级到1.4.54再说, 暂时放弃) openwrt-19 : lighttpd (支持很好) 启用两个module: lighttpd-enable-mod auth webdav 修改 /etc/lighttpd/lighttpd.conf server.document-root = "/var/www/lighttpd" # 设置web的根目录 server.port = 88 # http 的端口,缺省为 80 lighttpd 的运行身份,一般不修改,就用缺省设置 server.username = "www-data" server.groupname = "www-data" #添加以下段落 $HTTP["url"] =~ "^/note($|/)" { webdav.activate = "enable" webdav.is-readonly = "disable" webdav.sqlite-db-name = "/..../webdav.db" auth.backend = "plain" auth.backend.plain.userfile = "/etc/lighttpd/webdavuser" auth.require = ( "" => ( "method" => "basic", "realm" => "Access DAV", "require" => "valid-user" ), ) # rewrite,是针对openwrt19.07中的 重定向问题。debian-10 不用此项配置。 url.rewrite-if-not-file=( "^/dav/(.*)$" => "/dav/$1/" ) } 创建目录 mkdir -p /var/www/lighttpd/note 修改目录的owner chown www-data.www-data note,(www-data为lighttpd的运行身份) 创建账号文件 touch /etc/lighttpd/webdavuser 设置账号文件的权限 chown root.www-data webdavuser; chmod 640 webdavuser webdavuser文件为纯文本文件,一行一个账号。用户名和密码之间用冒号隔开。 test:123456 user:password systemctl restart lighttpd 设置完成,http://xxx.xxx.xxx:88/note/ 目录就开启了webdav。 让 webdav 运行在 ssl 上 因为页面认证用的是basic,所以不建议用http,不安全。建议用https (ssl)。 方法一,用 lighttpd 就配置 lighttpd 的 ssl。用 nginx 就配 nginx 的 ssl。自行上网搜索。 方法二,nginx 配置好 ssl 的支持,然后用 nginx 做反向代理。 在nginx的配置文件中的 server { ... } 中加入, location ^~ /note/ { allow all; proxy_set_header X-Real-IP $remote_addr; proxy_http_version 1.1; proxy_pass http://127.0.0.1:88/note/; } 注意,loction后的路径(note)要和proxy_pass中的路径相同。 方法三,lighttpd 配置好 ssl 支持,加上 mod_proxy 支持反向代理。请自行上网搜索。 方法四,apache2 配置好 ssl 支持,apache2 也支持反向代理。请自行上网搜索。 最后,把ssl的web,443口在路由器上做个映射(需公网ipv4)。 如果80和443标准端口不能用,也可以把https映射到8443这种非标准端口。 或者在路由器上允许转发(ipv6)。路由器支持ipv6就行。宽带运营商都已经提供ipv6了。国内三大手机运营商的4G网都有ipv6支持。 再配置个动态域名。 就可以设置"易码"app,添加webdav服务器。开心的写你的云笔记。 其他搭建webdav的方法: GO: parkomat 很多 golang 依赖包难以下载。 终于 build 成功。amd64的执行文件约9.7MB. 集成了DNS解析服务+web服务+webdav服务。 dns 解析配置简单,功能不错,可以用来负责解析一个域名(记录不多的话)。这样就不用装bind。 web,做个静态网站似乎也不错。 webdav,易码访问显示"400 Bad Request", parkomat 显示 "prop must not be empty" C语言: WebDAV-Daemon 1.1 配置比较麻烦 在项目目录中make之后, 把build目录中的rap和webdavd两个文件,复制到 /root/webdavd目录中。 把package-with/share复制到/root/webdavd目录中。 把package-with/pam.conf复制为/etc/pam.d/webdavd 写config.conf文件 83 none /root/webdavd/data /etc/mime.types /root/webdavd/rap webdavd /root/webdavd/share /root/webdavd/error.log /root/webdavd/access.log 执行 ./webdavd config.conf & 问题: MKCOL 命令能成功创建目录,但返回内容似乎不标准,不被"易码"接受。 MOVE 命令执行失败。 账号认证,缺省使用系统用户。如果要文件认证,则需要改pam文件,需要学习pam模块。 chroot-path只能指定为~或绝对路径,不支持类似~/data的格式。 GO: Simple Go WebDAV server 3.0.0 有binary包下载,直接就能用。有arm的包。 不会配置。总是返回"400 Bad Request" go-webdav 0.2.0 go build cmd/webdav-server/main.go 然后copy出来测试。 没有认证机制,"易码" 返回 "Not valid DAV response" webdavserver 1.0.3 go build 失败,好多依赖包下载不了。 终于 build 成功。amd64的执行文件约 8MB. 易码访问,显示"400 Bad Request"。 GO: The simple webdav server 0.3.0 有amd64的binary包,没有arm64的。 易码访问出错 "prop must not be empty" phpEasyVCS 用"易码"访问 测试页面 http://phpeasyvcs.sourceforge.net/demo/webdav.php ,失败。返回403错误。放弃。 phpdav (对webdav支持好) github上最后更新时间为 2019-5-13 代码中无用户认证机制。如要用户认证,则需依赖nginx或apache的认证。所以也不支持多用户。 PUT,DELETE,MKCOL,MOVE,PROPFIND 支持OK。对"易码"支持很好。 不知道 COPY,OPTION 支持如何,因为没用到。 只需要sqlite3支持,不需要其他数据库。 有一点小bug,不过不太影响。 PUT 指令时,Undefined index: Request-Body-File in /..xxx../handlers/Put.php on line 70 作者只试过装在网站的 root。不过我费了好大劲才装到二级目录。 项目的php文件放置的路径,不能包含下划线( _ )。 浏览器访问,当访问的路径末尾不带/时,页面左上角的"上级目录"会跳两层,链接不正确。 安装配置: 从github中把所有文件copy到本地目录。比如 /mydir/phpdav/ (这个路径中不能包含下划线) 保留 conf/ handlers/ library/ logs/ models/ interface/, 其他的没有用,可删。 mkdir -p logs/phpdav/debug; #这个目录中会生成log文件,不知道有什么用。 chown apache.apache logs/phpdav/debug; chown apache.apache library/db/sqlite; mv interface/ mydav/; #下文以及配置文件中,所有的"mydav"必须一样。 安装nginx,php72-fpm,配置方法自己搜索。 php72 需要 php72-pdo, php72-sqlite3, php72-mbstring, php72-xml, 几个包。 修改 conf/config.ini.php 中 $cloud_root='/mydir/dav-data' mkdir -p /mydir/dav-data/mydav; chmod apache.apache /mydir/dav-data/mydav; nginx的两个配置文件 phpdav.conf, php72-fpm.conf 如下。 把include phpdav.conf; 写入 nginx.conf 中的 server {..} 内,location / {..} 之前,即可。 这样就把 webdav 配置在 mydav 目录。通过访问 http://127.0.0.1/mydav/ 即可。 php72-fpm.conf location ~ .php(?:$|/) { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info if_not_empty; fastcgi_param SERVER_SOFTWARE phpdav-1.0; fastcgi_param REQUEST_ID $request_id; fastcgi_param REQUEST_BODY_FILE $request_body_file; } phpdav.conf location ^~ /mydav { root /mydir/phpdav; index index.php; include php7-fpm.conf; rewrite ^/(.*)$ /mydav/index.php last;
游客2q7uranxketok 2021-02-03 18:23:04 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT