测试Java与kotlin的相互调用

Android Studio3.0 发版已有时日,是时候来一发kotlin由浅入深自学案例了,让我们立刻开始这段21天从入门到放弃的学习历程吧。 天下武功,唯快不破。 kotlin主打旗号之一就是可完美兼容JAVA,主打旗号之二就是开发方便快捷,可省略JAVA冗余语句千万,既然在Android studio下二者可以得兼,何不一试? 以我对事物新鲜感无法停留三天的尿性,当务之急是要避免邯郸学步的尴尬,为了更快的上手,以及上手之后更快的在项目中使用,我决定先开始测试两者的互相调用,既要玉不碎,也要瓦全嘛。 新建工程。 include kotlin support。 next….finish。 好的,第一个kotlin工程建好了,代码如下: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } 好的,并没有看出多干练简洁,但是的确是按照JAVA模板以kotlin语言重设了一次。 接下来新建一个kotlin文件。 new –>kotlin File/Class 取名叫做KotlinTest 代码这么写: class KotlinTest { fun print() { println(“hello

玩《铁拳7》有感

玩《铁拳7》有感

1.菜鸟阶段耍点小聪明,打下段,偷投这些很有效果,可快速到中段; 2.中段开始需要学习套路和连招,开始大量接触对手类型,同时知道对手出什么招式后如何应对、确打,也就是基础技能要扎实,知己知彼,这些需要大量磨练和实战才学会和应用自如; 3.中段往高端进阶,开始需要理解位移、拆投、起身、试探、骗招等技巧,这个时候靠的是理论知识和角色解读,还要有勇气和敢拼的精神(不怕输,多见识,唯手熟尔); 4.高端博弈,除了需要上面所有的技能外,开始争帧数,理解每个角色招式的帧数,然后就知道什么情况出什么,什么位置怎么打,面对什么人用什么套路。这个阶段就是理论+实践+总结+另辟新径完成战斗胜利的时候,这个时候的游戏估计也只有和相差无几的对手玩才有意思了。 每上升一个阶段伴随的都是大量的失败、探索和顿悟,最后才是胜利。

跳出局限去考虑问题

被喷了一顿,回头想想,喷的也不无道理。 之前太沉着于技术实现,这和我发展预期是不完全相符的。 总结以下几条经验: 1.整体架构如何运作,所有运作部门如何关联,这些一定要搞清楚; 2.一个项目的目的是什么,方向是什么,需要哪些人配合,这些人各自担任什么角色要搞清楚。 3.团队管理的有个原则在于队长对于细节实现不用太过注意,只把重心放在资源分配和信息汇总、风险评估、确认交付时间等上面,但对我来说可能并不合适。毕竟很多这样的管理者失败了。我在想,是不是抽空多了解每个细节会更合适些?这样一个项目从宏观远景到局部实现就都有底了。不用太刻意去了解到技术技巧,但至少得知道技术名字和意义。 4.自身所在的技术实现一定要从目标到细节全部清楚,风险和执行效率能评估出来。如果不能评估,那就用经验去体会。 5.把分内事做好,再去接触其他的更多事,为更大的目标做好准备。

解决Git insufficient permission for adding an object问题

git push时提示如下错误: insufficient permission for adding an object 仔细想想,我修改过仓库目录,后面还原文件的时候懒得走gitlab的恢复流程,直接copy的文件,可能是这里出现了问题,导致git无操作权限。 到服务器/gitlab/git-data/repositores/目录下随便找个用户名文件夹进去 执行: ls -la 果不其然: 那就改回来吧: sudo chown -R git:git xxx.git 或者直接执行 sudo chown -R git:git *.git 全给改成git权限 再试试就好了

GitLab教程终极简化手册(Ubuntu)

GitLab教程终极简化手册(Ubuntu)

1.如何下载指定的gitlab版本: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/trusty/main/g/gitlab-ce/ 直接down下来,dpkg:dpkg -i gitlab-ee-XXX.deb 直接安装,不用指定版本的:curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install gitlab-ce 2.启动gitlab: sudo gitlab-ctl reconfigure 完成后,若端口没问题就可以直接浏览器输入localhost查看了 3.安装邮件: sudo apt-get install curl openssh-server ca-certificates postfix      配置详情自行百度 4.配置邮箱、仓库位置、host路径、备份路径等:   sudo gedit /etc/gitlab/gitlab.rb   *注:gitlab默认文件所有配置项前都加上了#的注释符号,如果要使用自定义配置,请将#删掉 eg:      邮箱配置:    http://www.shishuyao.com/2017/04/06/gitlab%E9%85%8D%E7%BD%AE%E9%82%AE%E7%AE%B1%E9%97%AE%E9%A2%98/     注:此处有大坑!     阿里云的25端口是不开放的!导致配置的邮件无法发送!     服务器命令行里面测试一下端口:     ps: telnet smtp.163.com 25

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包;          

Android studio如何导出.so库(NDK开发入门)

Android studio如何导出.so库(NDK开发入门)

很久以前在CSDN写的,转过来了。 项目中用到了硬件调试,google一下拿到了硬件调试的源码,可惜握草so库根本加载不进去好吗,一直报错,一怒之下自己拿他C源码重新编译一个。 旁边小兄弟见我装逼如神,强烈要求想学习一下,所以写出这个简易教程,希望大家不会的都可以快速入门。 走着,我们新建一个干净的工程,取名为NDKTest: 如果创建的文件有差异先别管,只要你这个工程能直接跑出hello world 就行。 第一步,想好你要导出的so库名叫什么,要丢到哪些设备上去。如果你是第一次,不要用脑先,直接按照图中的方案去写。 ndk { moduleName “jssc”    abiFilters “armeabi”, “armeabi-v7a”, “x86”} 其中,moduleName就是你会打包出来的报名,下面的三个相信各位用到第三方库的时候都会见到,这是根据应用系统架构的不同针对性出的包,如果写错,在build的时候会报错的; NDK如果报错,请百度如何安装ndk,遇到aboring什么的,可能是文件夹名写错了。 gradle.properties最下面加上 android.useDeprecatedNdk=true 第二步,改造一下你的MainActivity,并将其搞成这样(随你搞成什么样,只是为了方便调试) 按钮记得加监听事件。 搞完了摆在那里别动,我们等会来调教。 重点来了 我们首先要创建一个调用native方法的专用类,这个类负责桥梁作用,给C和JAVA提供交互依据。 public class NativeInteface { static { //载入名为“lb”的C++库 System.loadLibrary(“jssc”); } public native int Count(inta, int b); } static{}的意思大家都知道,只要new 这个对象的时候我们就会加载so库,注意so库的文件名,要和我们之前在配置文件里面写的一毛一样。 然后下面的native方法就是我们打算从C里面去取的,现在就叫a和b,等会我们在C里面把他加起来然后返回就好。 OK,做到这里我们要开始搞C了。 不过先等等。 我们先build –>makeProject先,因为下一个环节我们要用到刚才写好的NativeInteface。 希望你能找到,以上步骤全是Android的常用操作规范,只要代码和构建普通项目都是好的就不会有问题。除非你插件或者gradle或者ndk或者MainActivity的代码有问题。 找到以后我们打开Android studio的Teminal,先进入到debug文件夹: 这句可以照抄 cd app/build/intermediates/classes/debug

[转载]vim使用大全

原帖链接:http://www.cnblogs.com/usergaojie/p/4583796.html vi: Visual Interface 可视化接口 vim: VI iMproved VI增强版 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模式) 输入模式 末行模式 模式转换: 编辑–>输入: i: 在当前光标所在字符的前面,转为输入模式; a: 在当前光标所在字符的后面,转为输入模式; o: 在当前光标所在行的下方,新建一行,并转为输入模式; I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,并转为输入模式; 输入–>编辑: ESC 编辑–>末行: : 末行–>编辑: ESC, ESC 注:输入模式和末行模式之间不能直接切换 一、打开文件 vim +# :打开文件,并定位于第#行 vim +:打开文件,定位至最后一行 vim

Gitlab邮箱验证链接不正确以及重新加载配置出现问题解决方案

Gitlab邮箱验证链接不正确以及重新加载配置出现问题解决方案

情况是这样的,本来gitlab配置完成后是没问题的,突然想改一下url,于是在url后面输入把localhost ip地址改成一段域名,并且!手贱的重新安装了fixpost,于是出问题了(其实跟fixpost没关系) 第一个问题:   sudo gitlab-ctr reconfigure 提示错误:External URL must include a FQDN 细看gitlab.rp文件,发现配置如下: external_url  'ipadress' 立马将其改成 external_url ='ipadress' 重新加载配置,第一个问题解决。 第二个问题: 发送的邮箱验证邮件地址一直不对,点开链接后跳到ubuntu主机名的主机去了,尴尬。 然后看下面这个配置文件,发现我靠,邮件发送地址不对呀,怎么上面直接写的就是我的主机名? /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 好吧,那就来改改吧! 把此文件中的host改成当前的ip地址,然后: sudo gitlab-ctl restart OK,再去上传头像和发邮件,是不是都OK了?