01 August 2015

小米08月工作纪录


2015.08.01

DatagramSocket UDP Socket


2015.08.04

执行super语句必须将其放在子类的构造函数的第一句!!!

bindService后要在不用时使用unbindService注销掉SerrviceConnenction.

android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法


2015.08.05

OutputStreamWriter有哪些区别?

OutputStream 直接对byte[]进行操作,不会修改任何信息。字节流输出。

Write它会根据你的系统属性file.encoding来decode数据。比如你从文件中读取一行,用reader.readLine()返回的string是经过decode的数据。如果你的文件的encoding不等于你的file.encoding的值,就会产生编码错误。字符流输出。

关于volatile 关键字,比较好的解释


2015.08.06

高效率的mac工作环境配置

按住 Option 全屏按钮就会变为 + 最大化;

Ctrl + 向上箭头

窗口管理软件Moon,快捷键体验超好。

使用Messenger利用Message进行通信时,目前Message的obj无法带上自定义的Pacelable对象,因为Message内部的Pacelable source无法使用Pacelable对象的ClassLoader,导致ClassNotFoundException when unmarshalling异常。


2015.08.07

一般都是客户端想要调用服务端为其服务,所以一般是服务端返回一个可调用的实现 aidl 的Binder 供客户端使用,有事件回调其关注观察者的注册函数,或者广播通知。


2015.08.10

RemoteCallbackList 可以自己管理Callback,可以重写方法,在远程Callback死亡时添加处理操作


2015.08.11

Sublime 2 ,文本编辑器,相当好用,特别是快捷键,随心所欲。

Android HAL(Hardware Abstraction Layer),Android 硬件抽象层(用户空间),简单地说,就是对Linux内核驱动程序(内核空间)封装,向上提供接口,


2015.08.13

MIUI 7 发布。

今天有一个bug,系统休眠导致累积了许多包发不出去。


2015.08.19

蛋疼,什么bug都要客户端先查一遍。.明天还要过七夕。

学习grep大法

查时间 查关键字 优点就是可以一次查所有文件

使用 -e 表达关系。再次使用管道表达关系。


2015.08.20

AlarmManager android 的系统定时器,再系统休眠时也能拿到锁。碰到一个0点统一发心跳的bug,因为心跳时钟被对齐了,小米机型会有一些


2015.08.24

今天遇到MiLinkService 根本startService起不来,bindService也不执行回调的问题。

于睿来问为什么json下发不完全,事实的真相是log打印的字符有长度限制。


2015.08.25

activity类图

Service 进程被杀调研汇总,看adb日志发现

看到了 Scheduling restart of crashed service in 212312321ms 系统安排很长时间后再重启。

广播启动的 Starting service ServiceState without owner 可能是因为没有binder,所以没有owner。

startForeground 貌似能解决所有问题,但貌似不好,miui可能不会同意

设定进程优先级 THREAD_PRIORITY_BACKGROUND 貌似是解决方案之一


2015.08.26

有一起 MiLinkSDK died的原因是因为 native thread 问题,正在connecting时,stop thread。

前台进程>可见进程>服务进程>后台进程>空进程

有没有什么看日志的文本工具,先定义一些关键字,只要将文本一复制进去,这些关键字都自动高亮。


2105.08.27

mdfind -name a.txt 全局搜索文件


2015.08.28

今天爽爆了。

使用sublime 的自定义语法高亮功能,可能定制一个观看日志的神器,将日志中的重要信息点以不同颜色进行高亮,如下效果:

sublime自定义语法截图

网上有个 aaapackagedev 的教程,但好像很复杂。

直接找到 Sublime 的Package文件夹下,定义一个 *.tmLanguage 文件,格式如下:

sublime的tmLanguage

其中name对应的string的值来自于 .tmTheme 文件中的 scope 字段,以此关联 match 的大小和颜色。


2015.08.31

handshake 会根据用户ip返回当前适合用户连接的最优ip,但是连接不同的acc,运营商会选择不同的出口,这样就造成clientip不一样。

获取手机 wifi信息 网络信息 手机信号强度,大概如下

ConnectivityManager manager = (ConnectivityManager) Global.getApplication()
                        .getSystemService(Context.CONNECTIVITY_SERVICE);
info = manager.getActiveNetworkInfo();

getRemoteService为null,先stopService再startService能大幅度优化。



blog comments powered by Disqus