5月 152018
 

1. gRPC – 远程RPC框架

适用平台:c++、Java、Python、Php、Js等多平台

2. Netty -基于Java NIO client-server的网络应用框架

适用平台:Java

3. thrift – 用于可扩展的跨语言服务开发,简单来说就是RPC远程调用,它是一个完整的 RPC 框架体系。 

适用平台:Actionscript 3.0、c_glib、C++、CSharp、D、Dart、Delphi、Go、Graphviz、Haxe Framework、Haskell、Java、Javascript、Node.js、OCaml、Perl、PHP、Python、Ruby

4. SOME/IP(vsomeip) – 用于车载的远程通讯框架,特点:服务发现\带宽预留,符合autosar(汽车开放系统架构)标准.SOME/IP是指协议栈,vsomeip是用c++的实现

适用平台:C/C++

 Posted by on 2018-05-15
3月 302018
 

1.adb remount的作用就是重新挂载安卓的系统分区,使系统分区可读写

2.执行该功能其他的方法:

adb shell su #进入安卓命令行

mount -o rw,remount /system #将文件系统remount为读写权限

记得完事后remount回只读: mount -o ro,remount /system

3.另外一种方法

adb shell su #进入安卓命令行

mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system

 Posted by on 2018-03-30
2月 202018
 

 具体请看下面的表格:

♠ frameworks/base/core/java/android/app/ActivityManagerNative.java

§ ActivityManagerNative.getDefault() 很简单,获取gDefault
§ gDefault 一个静态变量,是ActivityManagerService 的代理对象

♠ frameworks/base/services/java/com/android/server/am/ActivityManagerService.java

ActivityRecord.isInStackLocked(token); 查询当前Activity是否还在Activity栈中?
如果还在继续执行Binder.clearCallingIdentity();保存此Activity在Binder中的id,稍候就会使用overridePendingAppTransition执行恢复的操作。
如果当前Activity的状态是活动状态或者将要暂停状态,执行WindowManagerService的overridePendingAppTransition

♠ frameworks/base/services/java/com/android/server/wm/WindowManagerService.java

调用AppTransition的overridePendingAppTransition方法(将动画的设置信息都放在AppTransition中了)
然后WindowManagerService在进行Activity切换的时候就会根据AppTransition的动画设置来显示切换动画了。

 

总结:

1. 执行overridePendingTransition时的调用顺序ActivityManageService->WindowManageService

2. 最终设置的是WindowManagerService的overridePendingAppTransition

3. 和Windows编程中显示模式窗口不同,执行startActivity时并没有立即暂停当前Activity,而是通过Handler在下一个MessageQueue的处理中暂停的当前Activity

 Posted by on 2018-02-20
5月 302017
 

  这个精度的损失给本人造成了精神损失! :cry: 

  整数相除,然后用ceil向上取整,本以为多简单个事,但是搞了半天,整数直接相除得到的结果必定是个整数,即使你把这个结果赋值给一个符点型的变量。

  后来才想起来需要强制转换其中一个为符点数然后再相除才可以。看下面的例子:

  输出结果:

  这个例子很简单,我就不解释啦!

  关键是有什么办法可以避免这个问题再发生?不能只凭记忆吧?!

 

 

 Posted by on 2017-05-30
1月 252017
 

  本文和上一篇文章类似,只是增大了圆角半径的值,所以左右两边看着像椭圆形状,我们先来看看完成后的效果图:

  首先,在res/drawable目录下新建一个shape形状,文件名为round_rect_oval_btn_normal.xml,代表按钮正常情况下的样子,代码为:

  第二步,为按钮按下状态新建一个文件,在res/drawable目录下新建文件名为round_rect_oval_btn_pressed.xml,文件内容为;

  接下来,把两个样式组合起来,使用selector资源,在res/drawable目录下新建文件round_rect_oval_btn_selector.xml,并输入文件的内容:

  好了,如果你现在想看一下按钮的效果,可以在activity上放一个TextView或者按钮,并设置它的background为@drawable/round_rect_oval_btn_selector。

  当然,为了保持代码的简洁和以后方便扩展,我们还是为这类按钮新建一个样式,在res/values/style.xml中新建一个名为round_rect_oval_btn_bkg的样式,并设置如下:

  现在再回到acitivy中为你的TextView或者按钮设置style属性为style=”@style/round_rect_oval_btn_bkg”就可以了。

 Posted by on 2017-01-25
1月 132016
 

  在Activity的finish中调用setResult时一定要注意顺序,setResult要在super.finish之前调用,否则返回的结果不正确!如下:

   如果不按这个顺序调用,在Activity中的onActivityResult中得到的resultCode是0!Android的坑真TM多啊!

 Posted by on 2016-01-13