目录

夜雨飘零

记录精彩的程序人生

一行代码Android上实现人脸检测、关键点检测、口罩检测 有更新!

一行代码实现人脸检测,人脸关键点检测和戴口罩检测。

把项目上传到码云 有更新!

一、为什么要使用码云而不使用GitHub?会有很多朋友这样问,原因有以下几条: 码云是国内的品牌,都是中文,对于英语比较弱的朋友比较友好。 不管项目私有还是公开,码云都是免费的,而GitHub在私有是收费的。 下图是码云给出跟GitHub的对比: 二、那我们怎么去把我们的项目上传到码云呢? 首先我们要注册一个账号,官网http://git.oschina.net/ 注册完之后,登录并创建我们的项目 填写项目的资料 复制项目的URL 在本地创建项目,本人用的是Intellij IDEA 随便创建一个文件 打开我们的Git Bash,当然要先安装git,官网https://git-scm.com/downloads 切换到我们的项目路径 把码云的项目克隆到本地 克隆成功 打开克隆下来的项目,把里面的所有文件剪切,放到本地项目的根目录下 随便输入ls,刷新一下,可以看到项目已经被初始化了。 将所有文件添加到版本控制中git add . 然后执行提交操作git commit -m “这个一个测试” 同步到码....

Ubuntu server搭建Java web服务器 有更新!

在这里为大家介绍如何在Ubuntu server搭建Java web服务器,输入命令时请留意作者的Ubuntu路径的变化。 1、在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2、 安装Xshell并创建连接 安装Xshell 建立连接 单击确定 3、 Xshell实现Windows上传/下载文件到Ubuntu 3.1上传文件 获取超级权限 安装rz/sz工具 切到相应目录,在输入rz 3.2下载文件 切入到相应文件夹,输入sz 文件名 4、 用root权限安装MySQL,需要安装以下三个 apt-get install mysql-server apt-get install mysql-client apt-get install libmysqlclient-dev 测试登陆mysql数据库可以通过如下命令: mysql -u root -p -u 表示用户名, -p 表示用户密码 5、 安装jdk 上传文件,我是放在/usr/local/ ....

Android的cookie的接收和发送 有更新!

我在做自动登录的时候遇到的坑,特写此文以提醒各位不要把自己绕进去了。 我们都知道在web端的cookie是可以通过服务器端设置保存的,默认是关闭浏览器就清除cookie的,但是可以在服务器端设置cookie的有效期,浏览器就会自动保存cookie,而在Android上是不会自动保存cookie,我用的是Okhttp3,我找不到response.addCookie(cookie)和request.getCookies()的方法(Java web的操作),如果没有保存和重发cookie给服务器的话,是不会自动登录的。搞了大半天才知道这一切都在head里。 如果是Okhttp3的话是这样的 在日志输出的cookie 通过这样的方法我们已经拿到了cookie,接下来就是保存cookie了,写以下的静态方法来将cookie保存到SharedPreferces,我的设计思想是尽量少操作数据库。 public static final String ISLOGINED = "islogined"; public static final String COOKIE = "cookie"; pub......

Android调试的Log.d()没有输出 有更新!

在之前我是很喜欢使用真机进行调试的,因为那时候觉得用真机调试比较方便,直到我发现我的手机打印不出Log.d()的调试日志,我才开始经常使用模拟器。当然还有两小点是:我的手机不支持快速启动和小编的电脑配置比较低,模拟器太吃内存了。 写一个简单的应用,它的代码是 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("调试日志","你好"); Log.e("错误日志","你好"); } 很简单,就输出一个调试日志和错误日志,但是在真机和模拟器的输出却不一样。 首先使用的是真机 它的输出日志只有错误日志,调试日志不见了。 然后我们使用模拟器进行调试 它把所有的日志都输出了 我们在调试应用时但要是每个日志都要输出,否则是很抓狂的。通过网上查得知是....

Windows10安装Linux子系统Ubuntu 有更新!

相信大部分同学都跟我一样都是使用Windows系统的,但是作为一个开发者来说,Linux命令是经常要用到的,在以前我们使用虚拟机安装Linux的,如果电脑配置低的话,就基本卡着不动了。在Windows10后,我们再也不用那么麻烦了,因为可以直接在Windows上安装子系统,这个子系统就是Ubuntu。 首先我们要打开Windows功能 在这里把勾打上 然后打开设置--->更新和安全--->针对开发人员,选择开发人员模式--->确定启动就行了 笔者介绍两种安装方式,第一种是从应用商店中搜索获取,第二种是中PowerShell中使用命令安装。 第一种,应用商店中搜索获取 首先我们先打开Windows的应用商店,如果读者的开始菜单上有应用商店,就可以直接点击启动。 如果没有可以直接搜索Store。 然后在应用商店上搜索Ubuntu,可以得到以下的结果,我们点击获取这些应用,进入到下一个页面。 然后选择Ubuntu点击进入,因为笔者已经安装了,所以这里显示是已安装,如果没有安装,应该是显示免费下载。然后点进去获取安装即可。 安装成功之后,会有一个Ubuntu的图....

使用InteIIiJ IDEA开发Java web 项目 有更新!

1、介绍 IntelliJ IDEA是一款非常强大的集成开发环境,基本上可以做任何事情,它的强大大大降低了我们的工作量,提高了工作效率。那么它如何开发Java web呢?下面就为大家介绍使用IntelliJ IDEA开发Java web。 首先去官网下载安装包:http://www.jetbrains.com/idea 它有两个版本Ultimate(收费)和Community(免费),作者选择的是Ultimate 2、安装 点击下载即可,然后开始安装 安装完成后首次打开它会提示 然后是激活,我们选择试用 在做就可以进行开发了。 3、开发Java web项目(JDK和Tomcat的安装我就不介绍了) 启动一个新的项目 按照我的箭头选择,记得在Application Server中选择Tomcat服务器点击New可以选择服务器的路径 下一步就到这里 点击finish就行了 出现下面的图直接OK,意思是要创建一个文件夹 创建一个JSP文件 运行项目 点击运行,会自动在浏览器打开首页 打开刚才我们刚才创建的hello.jsp,直接点击浏览器的图标就可以了....

XAMPP下的MYSQL解决中文乱码问题 有更新!

相信有很多朋友都跟我一样,使用XAMPP集成的MYSQL,因为它操作起来实在太方便了。但是它默认不是支持UTF-8的,需要我们手动去修改配置文件 my.ini 打开XAMPP的控制面板,并打开配置文件 在配置文件上加上4句话 default_character_set = utf8 character-set-server = utf8 collation-server = utf8_general_ci default_character_set = utf8 第1句: default_character_set = utf8 第2句和第3句 character-set-server = utf8 collation-server = utf8_general_ci 第4句: default_character_set = utf8 重启一下MySQL就行了,你重新创建一个数据库看看,但是数据库的编码一定要选对 说到这里顺便提一下Ubuntu server的MySQL中文乱码问题 在Ubuntu中配置文件的路径有点不一样,配置文件的内容也不一样,以下是路径 用vi....

学习SpringMVC笔记——Intellij IDEA创建SpringMVC项目 有更新!

选择Spring→勾选SpringMVC→选择Download(让IDEA帮我们下载需要的jar包,可能会有点慢) 生成的一个项目(左),把lib文件夹移动到WEB-INF文件夹下(右) 配置文件的设置 为了方便管理,我把SpringMVC的配置文件都放在config的文件中 该文件的是与src文件同级的,修改如下: 打开项目设置(Ctrl+Shift+Alt+S)→Modules→(项目名称)→选择文件(config)→点击Sources 因为移动了配置文件了,要在wel.xml里重新配置文件的路径 applicationContext.xml dispatcher-servlet.xml 配置文件的移动完成了,可以开始动工项目了 Controller类 在 dispatcher-servlet.xml中添加返回路径的前缀和后缀 使用包扫描的方法,扫描Controller类 定义Controller类时,只要在类前添加 @Controller就可以了 方法的定义 @RequestMapping参数value的值值路径,method的值是访问方式,是一个数组或....

SQL格式笔记 有更新!

说明:[]内的参数可以省略 表的创建 create table <表名> (<列名> <数据类型> [列级完整性约束条件], <列名> <数据类型> [列级完整性约束条件], ······ ,<表级完整性约束条件>); 表的修改 alter table <表名> [add [column] <新列名> <数据类型> [完整性约束]] [add <表级完整性约束>] [drop [column] <列名> [cascade|restrict]] [drop constraint <完整性约束名> [restrict|cascade]] [alter column <列名> <数据类型>]; 表的删除 drop table <表名> [cascade|restrict]; 查询 select <目标列表达式> [,<目标列表达式>]··· from <表名> [group.......

Android的View动画 有更新!

View动画其实就是使ImageView上的图片在隐藏、旋转、缩放、平移通过动画的过程显示。 布局代码,设置图片要通过src设置 <Button android:text="透明动画" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/alpha_image" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="match_parent" /> <ImageView android:id="@+id/alpha_image" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="match....

Android的各种通知Notification、Dialog、Toast、Snackbar 有更新!

有各种各样的通知,不同情况使用不同的通知方式,使用户在体验上更佳,下面就讲一下四种常用的通知方式Notification、Dialog、Toast、Snackbar 通知栏(Notification) public void showNotification() { //通过Notification.Builder 创建一个notification NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()); //第一次收到通知时,在通知栏显示的内容 builder.setTicker("中奖通知"); //用户点击后自动消失 builder.setAutoCancel(true); //在通知栏显示的标题 builder.setContentTitle("恭喜你中奖了"); //在通知栏显示的内容 builder.setContentText("你的号码被我公司抽中,中奖100万,请及时联络:139999"); //设置小图标,必须设置,否则通知无法显示 bu....

Android使用Fragment仿微信底部导航栏 有更新!

这是一个使用Fragment做的一个底部导航栏的小demo MainActivity的代码 package com.example.dell.myapplication; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ImageButton; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private ImageButton weixin; private ImageButton contact; private ImageButton find; private ImageButton me; private Co....

Android开机启动 有更新!

要开机启动,首先肯定是想到广播,广播接收器接收到开机发出的广播,就执行onReceive(),在onReceive()可以写一些我们需要做的操作 使用Android Studio帮我们创建广播,点击包名-->New-->BroadcastReceiver 如果是按照上面的操作,在清单文件中会自动生成红框中的代码 需要静态注册,我们要在action中注册开机的广播 <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> 还要加上开机启动的权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPL....

Android画板的实现 有更新!

这是一个常见的画板功能,常用于画画和手写输入等等,今天就教大家实现这个小功能,这个功能还是比较简单的,只有一个Java文件 先看效果图 布局代码,只有三个按钮和一张图片 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.dell.myapplication.Main2Activity"> <LinearLayout android:orientation="horiz......

Android在ImageView上直接显示网络图片 有更新!

在原生的ImageView中,没有一个方法是可以直接显示网络的图片的,当我们经常需要显示网络图片时,每次都有一大堆的操作,这会很麻烦,今天就教大家在ImageView上轻松显示网络图片。 自定义ImageView方法 写一个类让它继承ImageView,并增加一个 setImageURL(path)方法 import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.widget.ImageView; import android.widget.Toast; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; imp....

Android使用Service播放音乐 有更新!

像音乐这种耗时的和适合后台操作的应当放在Service中进行操作,而不是放在Activity,下面就介绍使用Service的音乐播放器 先创建一个MusicService,在Android Studio中,点击包名右键New-->Service-->Service 如果是按照上面的方法创建的Service,配置清单中会自动生成 改Service的声明 在MusicService中的Java代码,里面包含了音乐的相关操作复写了onCreate()用于初始化播放器 public class MusicService extends Service { private String path = "mnt/sdcard/123.mp3"; private MediaPlayer player; @Override public IBinder onBind(Intent intent) { //当执行完了onCreate后,就会执行onBind把操作歌曲的方法返回 return new MyBinder(); } @Override public void onCreate(......

Android读取短信和联系人 有更新!

读取短信和联系人经常会用到,要了解的是这是内容提供者(contentProvider)的知识点,大家都知道数据库是在data-->data 对应的包目录下,其他应用是不可以访问到的,如果有些数据要提供给其他的应用,比如通信录,其他应用想获取它的数据怎么办呢,这时内容提供者就出现了,预先写好了一些操作数据库的方法,因为方法是开发这个应用的开发者提供的,所以保证了数据库的安全操作,又能共享数据。 短信 开始切入正题,先说短信,要从数据库中获取数据,就要了解其结构 短信数据库在data-->data中的下面路径 它的表结构如下,有3个是我们要注意的,这3个是我们待会要用到的,其中date是毫秒值 Java代码为      //获取内容提供者 ContentResolver contentResolver = getContentResolver(); //获取短信表的路径 Uri uri = Uri.parse("content://sms"); //设置要查询的列名 String[] line = {"address", "date", "body"}; //各个参数的意思......

Android使用SharedPreferences保存账号密码 有更新!

有很多的应用都会有保存密码和账号的功能,比如QQ。接下来就讲讲使用SharedPreferences来保存密码和账号,也许有些人会考虑的数据库,但是我个人认为对于保存简单的数据,使用的数据库就大材小用了,SharedPreferences比较轻量级 首先写好布局,只有两个输入框和一个按钮 <EditText android:id="@+id/number" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" /> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" /> <Button android:id="@+id/save" android:text="保存" android....

Android网络框架OKhttp3学习笔记 有更新!

OKhttp3是一个非常强大的Android网络框架,它是由Square公司开发并开源的,很大Android开发者都会使用到,所以我也要来学学。 服务器 为了方便测试,我们需要一个后台服务器的的应用,下面是一个Java Web的Servlet,它的功能是接收客户端发来的登录数据,判断密码是否正确,并返回结果(JSON格式) import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Writer; @WebServ....