Flask Web Ubuntu服务器部署

写在前面

最近在和小伙伴一起创业,涉及到了公众号的开发和web服务器的部署操作,爬了不少的坑,总算是把Flask web应用顺利部署到了京东云的云服务器上。

我采用的部署方案是:

  • Web 服务器采用 uwsgi host Flask
  • 用 Supervisor 引用 uwsgi 作常规启动服务
  • 基于 Nginx 作反向代理

阅读全文

Android studio 3.0 关闭/显示方法参数提示

今天android studio 3.0正式版正式发布了,第一时间下载了3.0试用。用了半天,3.0什么都好,就是方法默认增加了显示参数名,看着实在眼花。

关闭方法参数提示

关闭的方法很简单,只需要将鼠标光标移动到提示处,右键便会有选项卡出来关闭。如下图所示,:
关闭方法参数

阅读全文

HEXO 部署到云服务器详细指南

前段时间薅羊毛了腾讯云的羊毛,花了360软妹纸买了6年的云服务。。。
打算把以前托管在github上的hexo部署到个人云服务器。折腾了良久,便有了以下的文章。

一、环境安装

1.1 node js 安装

1
2
yum install gcc-c++ make
yum -y install nodejs

验证:

1
2
node -v 
npm -v

阅读全文

VirtualApk爬坑 build篇

最近公司打算重构已有项目,打算把项目插件化处理,网上找了很多资料,发现滴滴公司的VirtualApk符合我们的业务需求。
本文主要讲解构建宿主工程和插件工程中遇到的各种问题。

一、Cannot invoke method getAt() on null object

请至少添加一个宿主工程或其它插件所没有的资源文件,随意一张图片都可以
参考地址

阅读全文

abstractProcessor debug

现在APT技术已经越来越成熟了,说到APT技术肯定离不开AbstractProcessor。但是AbstractProcessor的处理是在编译层实现的,而在开发中我们往往需要debug断点调试代码;本篇文章主要介绍了如何使用AndroidStudio来进行debug调试

一、添加gradle配置

  • 对工程根目录下gradle.properties添加下面两行配置

    1
    2
    org.gradle.daemon=true
    org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  • 在命令行中运行gradle daemon来启动守护线程。

    1
    gradlew --daemon

阅读全文

Android FTP 多线程断点续传下载\上传

最近在给我的开源下载框架Aria增加FTP断点续传下载和上传功能,在此过程中,爬了FTP的不少坑,终于将功能实现了,在此把一些核心功能点记录下载。

FTP下载原理

FTP单线程断点续传

FTP和传统的HTTP协议有所不同,由于FTP没有所谓的头文件,因此我们不能像HTTP那样通过设置header向服务器指定下载区间。

但是FTP协议提供了一个更好用的命令REST用于从指定位置恢复任务,同时FTP协议也提供了一个命令SIZE用于获取下载的文件大小,有了这两个命令,FTP断点续传也就没有什么问题。

FTP断点续传的原理和HTTP的断点续传原理差不多,在暂停时记录文件的停止位置,再次下载时,先读取记录的位置,如果位置存在,则通过REST命令告诉服务器从指定区间进行下载。

阅读全文

一行代码实现android文件下载

起源

本文主要介绍开源项目Aria的使用。
Aria项目源于15年工作中遇到的一个文件下载管理的需求,当时被下载折磨的痛不欲生,从那时起便萌生了编写一个简单易用,稳当高效的下载框架,aria经历了1.0到3.0的开发,算是越来越接近当初所制定的目标了。

以下为Aria的使用示例,使用Aria开发图片中的所有功能,只需要很短的时间,很少的代码。

Aria示例

阅读全文

列表播放视频简单实现

最近因项目需求,需要在滚动列表中播放视频。查了半天资料,发现其实现没有想象中的那么难。

原理

众所周知,由于SurfaceView没有UI同步缓冲区,就导致了在列表滚动的时候,正在播放的视频跟不上滚动的步伐;而在SDK 15的时候,谷歌官方提供了新的具有UI同步缓存的视频播放api TextureView。
本文真是基于该新Api实现。

阅读全文

记一次app进程被kill的经历

一、出现问题

最近在为河北电信做定制游戏平台开发的时候,遇到了一个很奇怪的问题,在某些盒子上,从平台打开某些游戏,玩上几分钟,然后该退出游戏,回到公司的游戏平台后,便出现了页面数据丢失的问题。
排查了几天(在这不得不吐槽电信的官僚主义,好话说尽,给予各种承诺,依然不提供可以进行adb调试的测试盒子)。最终发现是由于盒子内存太小(几年前的标准,1G内存!!!),当运行大型游戏后,盒子系统自动kill了公司的游戏平台,吐血啊。
该问题如下图所示:
问题.png

阅读全文

那些年,我们爬过的坑--Andriud TV篇(一)


从去年开始,从事Android TV开发已经大半年了,期间遇到过各种各样的坑,最严重、最难解决的莫过于焦点问题。痛定思痛,决定把TV开发中遇到的各种坑一一分享出来,让更多的人不再爬我所爬过的坑。

列表焦点问题

在TV开发中,VerticalGridView是谷歌专门为Android TV适配的RecyclerView,VerticalGridView很好的解决了列表的焦点问题,但是如果使用不当,很容易出现item子项焦点错乱问题。

在TV开发中尽量尽可能不适用没有优化过的RecyclerView!!!!!

小坑—–item焦点无法获取问题

进入列表界面,我希望的是按上下左右按键,item将能取得焦点,实现放大效果,但是我的实际效果如图所示,按上下键,变成了列表上下滚动,而不是我希望实现的item放大。
列表item无法获取焦点

阅读全文