Android/JAVA下基于java-simple-serial-connector串口开发完整教程

Android/JAVA下基于java-simple-serial-connector串口开发完整教程

很久以前在CSDN发的博文,转过来,原帖:http://blog.csdn.net/ssy_neo/article/details/53513465 列个纲: 1.根据.cpp文件和.h文件制作so库; 2.基础API认识; 3.代码示例; 以下正文: 1. 笔者android studio版本为:2.1.1    1.1将项目栏指向project,在main目录下(java包同级目录)创建jni文件(参考我的csdnNDK开发入门:http://blog.csdn.net/ssy_neo/article/details/51758687);    1.2将解压出来的java-simple-serial-connector-2.8.0\src\cpp\_nix_based\jssc.cpp文件和\java-simple-serial-connector-2.8.0\src\cpp\jssc_SerialNativeInterface.h文件放进jni文件夹;    1.3进app目录的build.gradle,声明我们的ndk名(AS会自动提示是否添加android.useDeprecatedNdk=true,点确定。若没有下载过NDK环境,请自行下载,方法百度);    1.4拍黑板:“啪啪啪”,同学们注意,第一个要点来了。               1.4.1:新建一个包,我这里命名为:jssc;               1.4.2 : 将java-simple-serial-connector-2.8.0\src\java\jssc\目录下所有java文件导入jssc包;          

gitlab配置邮箱问题

gitlab配置邮箱问题

直接使用的163邮箱,具体修改项如下: gitlab_rails[‘smtp_enable’] = true gitlab_rails[‘smtp_address’] = “smtp.163.com” gitlab_rails[‘smtp_port’] = 25 gitlab_rails[‘smtp_user_name’] = “xxuser@163.com” gitlab_rails[‘smtp_password’] = “xxpassword” gitlab_rails[‘smtp_domain’] = “163.com” gitlab_rails[‘smtp_authentication’] = “login” gitlab_rails[‘smtp_enable_starttls_auto’] = true gitlab_rails[‘gitlab_email_from’] = “xxuser@163.com” user[“git_user_email”] = “xxuser@163.com” 但是还是一直不成功,一怒之下查看maillog: cd var/log/ sudo gedit mail.log 发现以下错误: fatal: open /etc/postfix/main.cf: No such file or directory 好吧,那我创建一个总OK吧? sudo touch /etc/postfix/main.cf 很好,现在不报这错了,出现下面这个错误: warning: unable to look up public/pickup: No such file

不小心删掉了gitlab中的sign-in怎么办

不小心删掉了gitlab中的sign-in怎么办

此时原来的登录位置会提示: No authentication methods configured 无法登录就尴尬了,要打开请按一下步骤执行: 1. 安裝 postgresql-client-common & postgresql-client $sudo apt-get install postgresql-client postgresql-client-common 2. 打开库 $sudo gitlab-psql gitlabhq_production 3. 进入 client 界面后在#输入: UPDATE application_settings set signin_enabled=true; 4.退出: \q 4. 重新啟動 gitlab$sudo gitlab-ctl restart 然后就看到该有的登录界面回来了。

ubuntu配置gitlab 「转载」

ubuntu配置gitlab  「转载」

原帖链接:http://www.cnblogs.com/gabin/p/6385908.html 社区版 1. 安装配置依赖项 如想使用Postfix来发送邮件,在安装期间请选择’Internet Site’. 您也可以用sendmai或者 配置SMTP服务 并 使用SMTP发送邮件. 在 Centos 6 和 7 系统上, 下面的命令将在系统防火墙里面开放HTTP和SSH端口. sudo apt-get install curl openssh-server ca-certificates postfix 2. 添加GitLab仓库,并安装到服务器上(将gitlab安装源添加到apt中,然后通过apt-get安装,最好先将apt源修改成国内的) curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install gitlab-ce # 考验网速的时候到了 如果你不习惯使用命令管道的安装方式, 你可以在这里下载 安装脚本 或者 手动下载您使用的系统相应的安装包(RPM/Deb) 然后安装(手动下载需要自己找一下安装包,否则速度很慢很慢。。。) curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/xenial/main/g/gitlab-ce/gitlab-ce-XXX.deb

Win7+Ubuntu 16.04硬盘安装遇到的几个问题

Win7+Ubuntu 16.04硬盘安装遇到的几个问题

使用到的系统和工具汇总: Win7+ubuntu16.04安装包+EasyBCD 具体安装流程前人有不少总结,百度“win ubuntu双系统  硬盘安装” 即可。 1.filesystem type is ntfs partition type 0x07 这个问题一般是引导盘不对,现在很多电脑都是固态硬盘+普通硬盘的组合,在EasyBCD内可反复尝试sd(0,x)的值,x从0到5都试试。 或者注意解压到目录的vmlinuz文件,如果解压出来的是有.efi后缀,要在EasyBCD上加上后缀的,如下: kernel /vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-12.10-desktop-i386.iso quiet splash ro locale=zh_CN.UTF-8 noprompt — initrd /initrd.lz 2.安装完成之后引导界面上没有ubuntu的选项或者不是默认的ubuntu引导页: 进win系统,打开easyBCD,进行如图中的设置: 选择linux–>类型改为:GURB 2–>自动定位和加载—>添加条目 然后重启,就能再选项列表里面正常启动了。  

【技术】【Android】starService和bindService与DOTA2的类比乐趣文

【技术】【Android】starService和bindService与DOTA2的类比乐趣文

理解Android四大组件是端稳Android开发饭碗的基本功,但是餐桌上菜色多了难免会让人注意力分散,尤其是如今轮子当道,大家遇事就github,拿碗的手也越来越松了。 Service隶属四大组件之一,在android四大山门中独占一隅,这个组件用途极广,很多神奇功能都出于此,还是很有必要深究一下的。 我们从startService和bindService讲起。 为了更好的说明问题,我决定拿出DOTA2的两个英雄角色来举例: 敌法师 米波 敌法师是个十分恶心的后期英雄,米波是手残党克星,讲到service,那么这两个英雄的什么地方会有关联呢? 没错,分别是他们的核心装备和技能:分身斧和分则能成 。 我们来看一下技能说明:   幻影斧 用反光材料制成的斧头,能够混淆敌军。 主动:镜像 – 制造2个你的幻象,持续xxx秒(为方便理解,这里可以解读为无限时间)。   分则能成 米波召唤一个不完美的半自主性自身复制体,可以像本体一样获得金钱和经验,并拥有本体的经验和技能。但是,克隆只能使用本体装备的鞋类物品。任何一个克隆死亡都会导致所有米波全体死亡。 对service有研究的兄弟看到这里大概就明白了,没错,重点就在于分身的机制上面。 这里我们开拓一下脑洞,把玩家这一场游戏体验想成app主进程,假设敌法主体为ActivityD(以下简称AD),分身为ServiceD1(SD1)和ServiceD2(SD2); 米波为ActivityM(以下简称AM),分身为SM1、SM2. startService:敌法师 在我们直观感受中只要这盘游戏没完成,AD的死活是与SD1和SD2无关的,他们可以各走各的路线,各干各的活,但是他们的行为都会汇总到玩家的手上。从点击分身斧的那一刻开始,startService()就开始了,存在于一盘游戏中并各不相干。如果想结束service,我们就要主动去调用stopService(),告诉分身们:你们的责任尽到了,可以消失了,等下次开启分身斧的时候再来跟我一起团吧!  start–>stop(SD1,SD2)这样一个控制service的生命周期就结束了。 bindService:米波 米波的情况有点特殊,我们要把米波的存活期作为一个进程来看。好,在米波6级的时候多了一个新同伴:他的分身。这个分身最屌的地方在于他们的生命周期是互相绑定的,并且还能共享一个鞋子(conn可以通过ibinder来反馈service信息),问题在于如果AM死亡,SM1和SM2都会死亡,SM1或者SM2死亡的时候其他不管主体还是分身也会死亡。“分则能成”一旦触发,就相当于bind了一个service,大家生则同衾死同穴。假设AM销毁时没有调用unbindService,会直接导致进程死亡,程序crash( android.app.ServiceConnectionLeaked:that was originally bound here)。     如果米波主体真的不需要分身了,那就得先unbind才能继续:unbind–>stop,此时一个service的操控才算完成(当然游戏里面米波必须死了才能达成这个效果^ ^)。  好,一个新问题,如果我想在某个页面跟一个已启动的service交互,但是又不想他们绑定该怎么办? service running –>bindService(Intent,ServiceConn,flag)–>serviceConn返回参数(AIDL)—>unbindService  —->service