Android Studio插件开发入门篇

转载自:http://blog.csdn.net/qq_27258799 https://blog.csdn.net/qq_27258799/article/details/78093734 前言 本篇是AS插件开发的入门篇,旨在了解整个开发流程,代码比较粗糙 AS插件绝对是我们开发道路上的一把利器,这里首先推荐几款我常用的插件。 Json转Java类 快速生成findViewById代码 CodeGlance: 开发前准备 工欲善其事,必先利其器。首先我们要先准备IDE,这里使用 Intellij,我下载的Community版。 安装完毕后,新建一个插件开发工程: 关于project SDK,要说一下。如果没有sdk,就点击New,选择软件附带的,但是这里可能会提示没有Java jdk,在自己本机上,随便找一个版本的jdk就行,我用的1.8。 新建好的工程目录如下: 我们接下来模仿ECTranslation写一个翻译插件,因为原理简单,使用方便,实现起来很容易。大家如果看明白原理,都可以自己动手做一个。 因为要用到有道翻译的API,所以我们要先在有道智云上注册开发者,注册完申请自然语言翻译服务,创建应用。 请求API的过程有道翻译已经给我们准备好了Demo 我直接贴出来Java的请求过程: public class Demo { public static void main(String[] args) throws Exception { String appKey ="您的appKey"; String query = "good"; String salt = String.valueOf(System.currentTimeMillis()); String from = "EN"; String to = "zh-CHS"; String sign = md5(appKey + query + salt+ "您的密钥"); Map params = new HashMap(); params.put("q", query); params.put("from", from); params.

Pycharm在线/手动离线安装第三方库-以scapy为例(本地离线添加已经安装的第三方库通过添加Path实现)

在线安装 运行Pycharm,打开需要添加scapy文件的项目,以TestScapy为例 点击工具栏的File选项,选中Settings,单击打开 选中Settings的Project->Project Interpreter选项 点击右边选项栏上的‘+’按钮,在 弹出的Available Packages的搜索框中搜索想要添加所需要的第三方库的名称,例如scapy,选中想要的搜索结果,点击Install Package,然后等待安装成功即可。 安装成功的标志: 本地安装-通过添加第三方库的Path实现 前两部与在线安装操作相同,然后在打开的Settings窗口选择 设置->Show all 在弹出的Progect Interpreters窗口中选择第5个按钮,点击弹出的Interpreter Patha 窗口中选择‘+’按钮,在弹出的Select Path窗口,选择添加本地第三方库文件(例如Scapy)所在位置的路径,点击‘OK’按钮,完成配置。 添加成功后Inerpreter Paths窗口多出一行,点击ok确认,退出重新运行程序即可(注:需要等待pycharm更新配置完成,才能运行成功,pycharm最下方有显示更新进度的进度条)

嵌入式开发之STM32开发之无线控制之PT2262/2272最简单使用-带你实现一个远程控制电灯的例子

控制电灯?实在太简单不过了,我手动按一下不就行了,但是如果加个远程,那就难了! 现在常用的远程有:红外,射频! 因为我手边的PT2262/2272模块(就是一组常用的远程传数据的模块)只有射频,所以这次实现的远程就用射频模式了。 在嵌入式开发方面,我算是个新手,不过谁不是从新手开始的,那自然本篇文章也是适合新手的! 为了简化工作,理清头绪,我把最终开发的成品分为几大模块:PT2262模块,PT2272模块,LED灯模块,STM32开发板模块,控制程序模块,继电器模块! 涉及的全部硬件和软件 1.SC2262(SC和PT兼容) 2.SC2272-M4(SC和PT兼容,M4:输出不带锁存,就是你必须一直按着按键,只要一松数据就没有了) 2.STM32F103RBT6开发板 3.核心控制程序 4.四个LED灯 5.排线 6.J-Link程序烧录器 7.u4开发软件 8.J-Link驱动软件 9.4个继电器 V4配置 https://blog.csdn.net/qq_26914291/article/details/79985663 GPIO配置 参考教程:http://blog.sina.com.cn/s/blog_537d614301019ues.html //启动相应Port A的RCC RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_Init(GPIOA,&GPIO_InitStructure);//把设置绑定到GPIOA 定时器GPIO配置:https://blog.csdn.net/qq_26914291/article/details/80141700 【注】关于相关GPIO模式详细看这:https://blog.csdn.net/l20130316/article/details/50571902 控制流程 问题 半自动学习功能:http://bbs.mydigit.cn/simple/?t245739.html 继电器驱动问题: 地址问题:即单片机如何控制浮空的问题 画图 1.画图采用DXP, 程序 https://download.csdn.net/download/qq_26914291/10388316 参考 1.学习型PT2262无线遥控开关程序 2.PT2262芯片四路学习型无线遥控开关 3315m无线遥控模块 PT2262、PT2272 4.基于PT2262,PT2272实用无线遥控照明灯报告书 5.基于PT2262PT2272无线遥控彩灯与液晶屏的设计与实现 6.PT2262-PT2272无线收发讲解 7.基于PT2262的无线灯控设备设计毕业论文 8.PT2272无线遥控灯315/433MHZ设计,附原理图/PCB/BOM清单 9.PT2262遥控器的单片机软件解码(省去PT2272) 10.用你的手机去控制家里的电灯(demo)

校招-顺丰前端面经总结

由于本人的个人身体原因,只能三月底回学校进行春招补招的校园招聘!!!前前后后准备了一个月,也算是成绩圆满。 这篇文章是今天下午刚拿到顺丰的offer,所以先写顺丰的面经过程。也祝学弟学妹们校招也顺顺利利。 之前在顺丰拉勾上的招聘,知道顺丰技术研发是卡学历的,之前大三大四有在两家公司进行实习(不透露了,也是大公司),日常在实验室也跟着老师做着项目,也有项目经验。所以,当时投递顺丰的时候,先有一个测评题,做了一个多小时,那真是欲哭无泪,做到一小时的时候,真的想放弃。还是含着泪做完了。但是顺丰我没有收到春招笔试题(不知道为什么!可能么有吧) 一个之后,猝不及防的接到了面试通知,大概在4月10号左右的时间。一二面是前后十分钟面试的,每场面试50分钟。因为前后太快,只有总结两次面试的全部问题,已经记不清楚是哪一面问的了。大概一面问的东西很多,但是不深。二面更多的问原理。 顺丰一二面汇总 PS:项目介绍,必问,后面介绍 1、Vue的生命周期(网易、果壳网、今日头条面试也被问到) 2、Jquery用的是几版本(目前是3版本,但是企业一般用1.8版本,因为3版本很多可能还没有更新) 3、Webpack用的是3版本(目前已经更新到了4版本) 4、Webpack的配置属性(就简单的介绍配置的基本属性) 5、原型和原型链 constuction 6、有哪些排序(冒泡、归并、快速排序、堆排序)(只要问到排序一定会问时间复杂度) 7、给一个数组,找出第二大的数,只能用一次循环怎么实现(后面改成:抛开一次循环,可以怎么实现。本人答:排序,然后倒数第二个(判断最后一个的大小,是否有重复)) 8、事件模型(捕获、冒泡) 9、Js事件绑定的三种事件 (1)在html中直接绑定 onclick (2)获取对象之后,给对象绑定onclick attachEvent //测试浏览器,发现:firefox、chrome、IE9、IE10、IE11、safari、opera都不兼容,IE7、IE8兼容, if (window.attachEvent) { window.attachEvent(“onload”, remove); } else if (window.addEventListener) { window.addEventListener(“load”, remove, false); } 10、状态码 11、AMD和CMD的区别 12、Vuex是什么 13、基本数据类型 undefined null boolean number string symbol(es6) 14、V-指令说一些 v-if 和 v-show的区别 v-if后面是一个表达式,v-show如果是false,在DOM中是display:none 15、promise的原理 16、原生JS怎么去实现回调 17、京东商城的图片,要是存在图片跨域问题,怎么去解决 18、跨域问题(追问,jsonp跨域的原理) 19、Jsonp跨域的原理 答:很简单,就是利用 并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递)。 20、防抖 21、扩展运算符 。。。Arr 22、数组方法 pop map concat filter find keys indexOf forEach

暗通道去雾法-对算法的理解Dark Channel Prior

暗通道最早是由He提出的,并且也发展得很快,具体的在这里不说,这篇文章,只是谈一下暗通道去雾的实现过程 1.该方法最原始的模型是I=Jt+A(1-t),这个模型在我的其他文章中有详细介绍,这里不详细讲解。 可以看出带有雾的图像的I是由没有散射的原图像J和大气光(air light)共同组成的。这里刚好看到t,1-t和为1,实则不然,只是凑巧这样,原作者有详细的推导,这个是推导而来并非为了凑和为1。 2.看了上面的模型进一步会想,要是我们把t变为1,不就I=J,完事了么……理论上是这样的,不过一般给你的图像都是拍好的,你要想t=1,那你得找没有雾的图,没有雾的图你去啥雾。在这里我们不是改变t的值,而是对t进行求解。 3.为了求t,He老大的暗通道出现了,他发现一个规律,在没有雾的图像中,图像的RGB通道,总会有一个通道的值偏低。该区域的最小值是一个很小的值。颜色鲜艳和阴影都会表现出暗通道极小的值。下图是选了三通道最小值后又做了个最小值滤波。该公式就可以表示暗通道的性质了。c为通道,Ω局部窗范围(最小滤波)。这里还有一点可以看出,天空那不是黑的。在He.2009年的论文中也说明了,在带有天空的图像中,暗通道方法并不是很适用,后期应该是他已经改进了,想要了解的可以去查一下。 4.J=0,你有没有看出点什么。我们未知参数就只有一个t了。 通过上面的公式我们的t就求出来了,t出来了我们真实的J就可以求解出来了。 5.这里说明几个问题 ①求出的t咋用?这里说明一点,在图像中,不同点的t是不同的,因此每个区域都有一个t,把t的矩阵带入到最上面即可。 ②大气光A怎么求?首先从暗通道图像中按照亮度的大小提取最亮的前0.1%像素。然后,在原始有雾图像II中寻找对应位置上的具有最高亮度的点的值,并以此作为AA的值。 ③三个通道怎么处理呢?一个一个处理,t是一样的,只是不同的Ic和Ac……(c:R、G、B) ④网上提到了soft matting和导向图是用来干啥的?咱们用最小滤波出来的暗通道会是一块一块的,那么咱们的t估计也好不到哪去…………为了得到更好地t,我们就要优化我们的暗通道图。He最初用soft matting……网上的评论一致认为很慢,我没试,也就不说了。导向图是用来替代soft matting的,也是听他们说很快。 图片来自大神博客:http://www.cnblogs.com/Imageshop/p/3281703.html

UBUNTU下一行命令完成VMWare tools的安装

VMWare tools的常规传统安装方法比较繁琐,操作起来比较麻烦。 而且使用传统方法安装完后会提示:“ open-vm-tools packages are available from the OS vendor and VMware recommends using open-vm-tools packages ” 上网一查才知道最近open-vm-tools 已经代替了官方 VMware Tools。 所有我们只需要一行命令就可以实现VMware Tools的安装了: sudo apt-get install open-vm-tools

200G网盘资源分享

今日偶得大量网盘资源,遂写一博文以分享! 来源:HACK学习呀,微信公众号:HACK学习呀 文件名 链接 提取密码 2015cracer入侵入门到精通视频教程 点我查看 trf3 一笔√带过入侵教程 点我查看 ypan 〔复仇者〕新手入门系列(7套) 点我查看 g1tb 菜鸟入门,做的确实不错 点我查看 q0oh 菜鸟基础(10套) 点我查看 2zq6 小迪渗透第十期 点我查看 u5sv 计算机网络 点我查看 v145 计算机网络视频教程 点我查看 3btd TCP_IP协议基础视频教程 点我查看 ta7z IP地址子网划分终极降解视频讲解(17讲) 点我查看 tfj4 互联网络工程技术 点我查看 ns1t 计算机网络原理精讲视频教程 点我查看 a9re 运维视频教程(14套) 点我查看 6qfu 宽带网络交换技术 点我查看 2mbs google黑客 系列 点我查看 rlzh 谷歌黑客语法入门视频教程 点我查看 uvbd Kali Linux——入侵渗透(2套) 点我查看 3xwn kali linux bt5软件+使用教程(10套) 点我查看 rh3n xss技术大全 点我查看 5uzr XSS教程系列(2套) 点我查看 gcrr 病毒分析视频教程 点我查看 3lf0 代码审计pdf 点我查看 yz4c 暗月2014最新PHP代码审计系列教程 点我查看 li4h 钓鱼站点开发系列教程 点我查看 5su8 幽灵逆向反汇编逆向教程12课 点我查看 twfh Burpsuite视频教程_2014年 点我查看 9bwk Burp软件教程 点我查看 y0jl 神器们的使用教程(8套) 点我查看 ie3g 靶机搭建(7套) 点我查看 ejfo BackTrack渗透16课 点我查看 s5nv BT5使用课程 点我查看 cu89 burpsuite 系列视频教程 点我查看 pjpr Metasploit教程大全 点我查看 q9fk webshell提权教程 点我查看 8ttn 菜鸟腾飞安BackTrack渗透-视频教程 点我查看 4ktc angelc0de原创burpsuite系列VIP培训教程 点我查看 o6sj 慕课网—前端开发工具SublimeTex实用技巧 点我查看 goz7 用工具快速建站扒站教程 点我查看 kd63 常涛的教程(5套) 点我查看 3jyh Backtrack工具教程 点我查看 aw4g MFC软件使用教程 点我查看 i0nn 黑客工具MSF系列培训教程 点我查看 rxbd 靶机环境 点我查看 sqya 戈雅渗透论坛脚本安全系列教程+工具包 点我查看 4gol 〔复仇者〕服务器维攻防(3套) 点我查看 gkjk 网络攻防(8套) 点我查看 rd6i 商城论坛建站(3套) 点我查看 2b9r 〔复仇者〕脚本知识学习(6套) 点我查看 jvyg 脚本相关系列 点我查看 uxdi [飞儿精品教程]小迪第7期脚本培训 点我查看 apan 中国黑客组织脚本入侵6课 点我查看 47qk 『逆向免杀』(39套) 点我查看 wqrg 免杀教程大合集(4套) 点我查看 y1bt 日月神教源码免杀第一季 点我查看 su0r 逆向免杀(48套) 点我查看 v0my 上兴木马软件+教程 点我查看 tm9s 抓鸡远控视频+软件 点我查看 f8wb 刺客安全网抓鸡VIP课程 点我查看 07h4 2014最新实战3306端口抓鸡 点我查看 4qnn 完全精通DDOS软件的配置和使用 点我查看 qi72 逆向分析(5套) 点我查看 pzwu 破解软件教程(10套) 点我查看 5ysm 『脱壳破解』(68套) 点我查看 zi30 2012最新天狼星加密视频破解教程(附工具)共15个视频 点我查看 iicy 脱壳破解(76套) 点我查看 eh41 加密破解(3套) 点我查看 8udp 90大流5分钟教会你内网劫持 点我查看 j7b4 渗透教程菜鸟也能变大神 点我查看 ammw 〔复仇者〕高级渗透教程(10套) 点我查看 ika7 〔复仇者〕渗透整套教程(59套) 点我查看 iqw2 〔复仇者〕杂七杂八教程(40套) 点我查看 uk33 杀魂道长渗透教程 点我查看 u9cr 【9.

给图像添加各种噪声

1. 简介 下面简单介绍两种图像噪声,即椒盐噪声和高斯噪声。 (1) 椒盐噪声 椒盐噪声也称脉冲噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。 图像模拟添加椒盐噪声是通过:随机获取像素点,并设置为高亮度点和低亮度点来实现的。 (2) 高斯噪声 高斯噪声是指概率密度函数服从高斯分布的一类噪声。 特别的,如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度服从均匀分布,则称这个噪声为高斯白噪声。 高斯白噪声 功率谱密度频谱图 和 噪声幅值分布图的图片如下: 2. 代码 (1) 为图像添加椒盐噪声 //给原图像增加椒盐噪声 //图象模拟添加椒盐噪声是通过随机获取像素点,并设置为高亮度点和低亮度点来实现的 //srcImage为源图像,n为椒/盐像素点个数,返回含噪图像 Mat addSaltNoise(const Mat srcImage, int n) { Mat dstImage = srcImage.clone(); for (int k = 0; k < n; k++) { //随机取值行列,得到像素点(i,j) int i = rand() % dstImage.rows; int j = rand() % dstImage.cols; //图像通道判定 if (dstImage.channels() == 1)//修改像素点(i,j)的像素值 { dstImage.at(i, j) = 255; //盐噪声 } else { dstImage.

如何用VSCode愉快的写Python

在学习Python的过程中,一直没有找到比较趁手的第三方编辑器,用的最多的还是Python自带的编辑器。由于本人用惯了宇宙第一IDE(Visual Studio),所以当Visual Studio Code出现时,心情有点小激动呢。从我的使用经验出发,可以说VSCode用来写Python真的是再合适不过了,你将体验到丝滑的编程体验和无限扩展的可能。而且,如果你的项目是包含多种语言的,比如Web开发,你不必再开多个编辑器和其他工具,因为这一切都可以在VSCode里完成了。 搭建环境 在VSCode中搜索扩展Python,就是这货: 安装后,重新加载。上图中我因为已经装过了,所以显示的是禁用、卸载按钮。 下面就可以愉快的和Python玩耍了。是不是超方便? 基本操作 快在VSCode开始你的第一段Python代码吧,Python插件自带的Pylint功能会在你输入的过程中给你自动提示,自动完成,以及错误提示。 这里需要提醒各位PythonER们,VSCode包括VS中,Tab都默认是4个空格。 常用的几个操作快捷键,估计VSer们都能无痛转换: 首先是F1/Ctrl+Shit+P万能键,谁用谁知道 Ctrl+P:文件切换 Ctrl+空格:自动提示 F12/Ctrl+左键:跳转到定义 Shift+F12:预览定义 Ctrl+G:跳转行号 Ctrl+/:注释切换 Alt+↑↓:整行上下移动 Ctrl+↑↓:编辑器垂直滚动条上下移动,光标不动 Ctrl+Backspace/Delete:整词/连续空白删除 Ctrl+→←:光标整词移动 Ctrl+F查找/Ctrl+Shift+F在文件中查找,这都属于通用的,类似的就不说了啊。 预览定义图: 调试操作 随时随地,F5调试运行。注意,VSCode默认在调试后,会停在第一句,如下图。 调试快捷键与VS基本相同。 F5:调试/继续, F10:单步跳过, F11:单步进入, Shift+F11:跳出。 F9:切换断点 左侧Debug窗口显示的从上到下依次是调试所用的模式,变量(局部变量,监视),调用堆栈,断点等。基本上我们需要的功能都在这里了。 有个不太好的设计就是变量、监视这些地方宽度太小,查看一些长的变量不如VS方便。不过好在我们有调试控制台啊,直接敲上变量名就好了。 这里需要提醒一下的是,左上角的下拉选择调试模式中,常用的两个是Python和Integrated Terminal/Console,第一个就是在插件自带的环境中调试运行,第二个就是集成的控制台中。问题是,第一种暂不支持input()输入,所以想调试带input的程序,就选择Integrated Terminal/Console或者External Terminal/Console也是可以的。 Git支持 集成了Git支持,这是很棒的功能,不仅在行首用不同颜色标识添加、删除、修改的行,点击行首色块,还能显示对比。资源管理器中也用不同颜色和标记提示修改的文件。如图: 想要提交时,只需要切换到左侧源代码管理,Commit就行了。 总结 VSCode小巧、快速,跨平台,界面炫酷,各种扩展,是时候换用新的VSCode了。 这毕竟是微软出品,随便从VisualStudio项目组拉几个人就能甩Sublime、Atom好几条街了(暂不提Vim),让我有一种一旦用起来就停不下来的感觉。

ubuntu下安装svn

ubuntu下安装svn 1、下载安装 apt install subversion 2、创建目录和仓库 mkdir -p /home/.svn/repository svnadmin create /home/.svn/repository/ 3、进入配置文件(我这里用的是隐藏目录) cd /home/.svn/repository/conf 4、打开svnserve.conf并配置 vim svnserve.conf 将 这三处改成 注意要顶格写 然后保存退出 5、修改passwd文件 vim passwd 添加用户名和密码,例如 zhaoyang = 123456 6、修改authz文件 vim authz 在[group]下面加上 admin=zhaoyang [/] @admin=rw 7、启动svn服务 svnserve -d -r /home/.svn 8、在客户端测试 地址就是 svn://ip/repository 注意默认端口是3690,要开放此端口 9、接下来配置开机自启 启动方法1: 先查一下svnserve的位置 which svnserve 例如返回 /usr/bin/svnserve 记住这个,后面脚本需要 开始写脚本 cd /etc/init.d vim svn.sh 打开后写入 #!/bin/bash /usr/bin/svnserve -d -r /home/.svn 保存退出后给文件添加可执行权限 chmod +x /etc/init.d/svn.sh 10、打开 /etc/rc.