最近开发了一款门禁扫码系统,主要功能是在PDA上方便用户来签到,统计数据的当天的签到人数,同时新增了在文件中的签到的人数,校验文件的数据的行数。
1、扫码功能集成goog-zxing

使用的是这个哥们的扫描:超简单集成Android Zxing实现扫一扫二维码
https://blog.csdn.net/yuzhiqiang_1993/article/details/52805057
过程中发现了一个很不粗的物流appdemo(没时间跑,这里就保存一下):
https://github.com/qht1003077897/H-Express

2、文件保存,我实现这个功能使用的是logcat的日志功能,在使用日志功能的时候,保存文件根据每天的文件来单独保存,
技术要点是:

     - 1、使用adb logcat命令显示Android设备上的Log日志
          https://blog.csdn.net/wenzhi20102321/article/details/81058196
          LogcatHelper的功能封装
          https://www.cnblogs.com/lipeineng/p/5434078.html
     - 2、Android 存储字符串数据到txt文件
     - 3、Android存储路径你了解多少
          https://www.jianshu.com/p/2de0113b3164
     - 4、**android 日记log保存到本地简单方法**
          https://blog.csdn.net/qq_38355313/article/details/84551634
     - 5、Android 存储字符串数据到txt文件
          https://blog.csdn.net/u012246458/article/details/83063112
- 6、Android私有储存文件和外部储存文件读写(适配6.0以上权限,不考虑SD卡)
https://blog.csdn.net/u010218170/article/details/83244187

3、校验数据,统计当天文件中记录的数据条数,本人直接读取的是文件的行数。

LineNumberReader lineNumberReader = new LineNumberReader(new FileReader("G://info.txt"));  
 lineNumberReader.skip(Long.MAX_VALUE);  
 //注意加1,实际上是读取换行符,所以需要+1
 int lineNumber = lineNumberReader.getLineNumber()+1;  
System.out.println("行数 "+lineNumber);  

5、弹框的使用例子

Android原生加载框的简单示例https://www.2cto.com/kf/201711/698177.html

中间遇到问题如下:
1、文件保存找不到,其实,后台调试显示,文件已经存在。但是,文件手机端确实看不到,问题点在于,现在手机看不到这些app 的文件权限,解决方案:需要专门下载es文件浏览器才能查看到。
2、Toast弹不出,其实后来发现是自己没有加show()方法。以后千万记得一定别忘了加,好久没弄安卓了,确实废了点劲。
3、文件日志保存,按照文件的日志保存,logcat日志,这里面需要技术点在于怎么只要想要的格式的日志,
我这里面使用的grep来过滤识别

 /**
         *
         * 日志等级:*:v , *:d , *:w , *:e , *:f , *:s
         *
         * 显示当前mPID程序的 E和W等级的日志.
         *
         * */

        // cmds = "logcat *:e *:w | grep \"(" + mPID + ")\"";
        // cmds = "logcat  | grep \"(" + mPID + ")\"";//打印所有日志信息
//         cmds = "logcat -s QD";//打印标签过滤信息
//        cmds = "logcat *:e *:i | grep \"(" + mPID + ")\"";
        cmds = "logcat *:e | -v tag | grep \"(" +  "QD"
                + ")\"";

这里面需要对脚本语言需要很清楚,

4、Android Studio Gradle插件版本与Gradle版本之间的对应关系
https://www.jianshu.com/p/942bfda73659

最近需要拖第三方公司开发团队的代码,发现url无效,
ssh远程连接返回:Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
初始怀疑是权限问题,reporter权限,改到developer,依然获取不到,ssh远程连接还是拒绝。
http连接可以拉取到代码,很显然,ssh连接拒绝是部署服务器出现的问题导致的,解决办法是在部署服务器开通ssh权限。
CentOS 6.3系统下,用户user的home目录:/home/user的权限变成了777,造成不能正常登陆SSH,报如下错误:Permission denied (publickey,gssapi-with-mic)
SSH对公钥、私钥的权限和所有权的要求是非常严格的,总结如下:

1、下面两个目录的所有权必须是user,所属组也应该是user,权限必须为700

homeuser

homeuser.ssh

2、下面公钥文件的所有权必须是user,所属组也应该是user,权限必须为644

homeuser.sshauthorized_keys

3、下面私钥文件的所有权必须是user,所属组也应该是user,权限必须是600

homeuser.sshid_rsa

ssh命令网络安全
ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。

语法
ssh(选项)(参数)
选项
-1:强制使用ssh协议版本1;
-2:强制使用ssh协议版本2;
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-A:开启认证代理连接转发功能;
-a:关闭认证代理连接转发功能;
-b:使用本机指定地址作为对应连接的源ip地址;
-C:请求压缩所有数据;
-F:指定ssh指令的配置文件;
-f:后台执行ssh指令;
-g:允许远程主机连接主机的转发端口;
-i:指定身份文件;
-l:指定连接远程服务器登录用户名;
-N:不执行远程指令;
-o:指定配置选项;
-p:指定远程服务器上的端口;
-q:静默模式;
-X:开启X11转发功能;
-x:关闭X11转发功能;
-y:开启信任X11转发功能。
参数
远程主机:指定要连接的远程ssh服务器;
指令:要在远程ssh服务器上执行的指令。
相关命令
ssh-copy-id
nmap
ssh-add
sftp
ssh-agent
sftp-server
iptstate
ssh-keygen
ssh-keyscan
sshd
命令直达(输入完整命令)

模糊搜索(输入关键词)
Linux下载
Ubuntu下载
CentOS下载

ssh-add命令网络安全
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。

语法
ssh-add [-cDdLlXx] [-t life] [file ...]
ssh-add -s pkcs11
ssh-add -e pkcs11
选项
-D:删除ssh-agent中的所有密钥.
-d:从ssh-agent中的删除密钥
-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。
-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。
-L:显示ssh-agent中的公钥
-l:显示ssh-agent中的密钥
-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
-X:对ssh-agent进行解锁
-x:对ssh-agent进行加锁
实例
1、把专用密钥添加到 ssh-agent 的高速缓存中:

ssh-add ~/.ssh/id_dsa
2、从ssh-agent中删除密钥:

ssh-add -d ~/.ssh/id_xxx.pub
3、查看ssh-agent中的密钥:

ssh-add -l

linux命令大全
https://man.linuxde.net/ssh-add

到现在,发现自己很久没有写博客了。不写的理由还是挺多(没时间、忘记了),反正可以给出各种理由,最根本的原因还是自己这段时间的懒惰,不像以前那么勤奋了。其实归根结底还是自己没有养成降低了自己的要求。当然自己的其他方面成长也很快,自己变得越来越果敢(果断和勇敢的你那种,自己的责任感也愈加增强)。客观的分析自己越来越成熟了,解决问题的能力越来越强,成长本来就是一个不断成熟的过程,只有遇到了问题不断去解决才有机会不断自我的成长。

js,css代码压缩
web站点需要对js,css代码进行压缩,打包,下面是利用maven进行打包压缩的配置

将压缩后的代码打入到war包中,并且压缩后的js,css文件名不变

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version> 
            <configuration>
                <warSourceExcludes>**/*.js,**/*.css</warSourceExcludes>
            </configuration>
        </plugin>
        <plugin>
            <!-- YUI Compressor Maven压缩插件 -->
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.3.0</version>
            <executions>
                <execution>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- 读取js,css文件采用UTF-8编码 -->
                <encoding>UTF-8</encoding>
                <!-- 不显示js可能的错误 -->
                <jswarn>false</jswarn>
                <!-- 若存在已压缩的文件,会先对比源文件是否有改动  有改动便压缩,无改动就不压缩 -->
                <force>false</force>
                <!-- 在指定的列号后插入新行 -->
                <linebreakpos>-1</linebreakpos>
                <!-- 压缩之前先执行聚合文件操作 -->
                <preProcessAggregates>true</preProcessAggregates>
                <!-- 压缩后保存文件后缀 无后缀 -->
                <nosuffix>true</nosuffix>
                <!-- 源目录,即需压缩的根目录 -->
                <sourceDirectory>src/main/webapp/resource</sourceDirectory>
                <!-- 压缩js和css文件 -->
                <includes>
                    <include>**/*.js</include>
                    <include>**/*.css</include>
                </includes>
                <!-- 以下目录和文件不会被压缩 -->
                <excludes>
                    <exclude>**/*.min.js</exclude>
                    <exclude>**/*.min.css</exclude>
                </excludes>

            </configuration>
        </plugin>
    </plugins>

下面这个标签是对已经压缩过的文件不进行压缩

 <excludes>
 <exclude>**/*.min.js</exclude>
 <exclude>**/*.min.css</exclude>
 </excludes>

但是如果按照如下配置进行打包,那些在源文件中已经是.min结尾的js,css代码将不会打进war包

<configuration>
<warSourceExcludes>**/*.js,**/*.css</warSourceExcludes>
</configuration>