- 博客(25)
- 资源 (3)
- 收藏
- 关注

原创 从零开始部署企业智能硬件CI环境DevOps篇(三)
开始之前在笔者有限的职业生涯中,有长达4/5的时间是围绕Android端上软件研发工作展开的。从需求评审到功能开发,从代码提交到解决线上测试问题,如此往复。这条道路虽然艰难但并不复杂,只要严格按照工程排期做好自我能力评估,总是能在力有未逮前处理完所有问题。然而自从加入这个团队后,这个循环就被打破了。原因也很简单,我的视角从“执行者”转成了“推动者“。研发的工程交付只是整体项目交付的一个环节,...
2020-01-31 18:04:39
688

原创 从零开始部署企业智能硬件CI环境Jenkins篇(二)
开始之前一般来说,成熟的大型公司通常具备一套完备的持续集成环境,从代码托管到部署上线都有相关的工程团队维护,用来配合各个业务团队的基础开发环境。但是通用的模型往往难以适配具有独特需求的业务。这个时候是提pr等待基础环境迭代,还是自己动手造轮子,往往根据业务方手头项目的进度安排来决定,并非取决于个人或者团队的能力。笔者在加入目前这个团队时,恰好面临这个选择。公司已经提供了比较完善的项目管理环境...
2020-01-30 22:33:53
513

原创 从零开始部署企业智能硬件CI环境背景篇(一)
开篇闲话长期以来,笔者都在从事Android端上Apps的研发类工作,关注的重点,大多也都是在Android应用的功能实现、性能优化以及业务数据分析方面。在加入现在这个团队之前,对于CI(Continuos Integration)持续集成的概念,笔者还停留在“开发机编译通过后,用jenkins在服务器上再执行一遍"的概念。而真正开始参与这项业务之后,才发现...
2019-11-10 17:53:27
389
原创 RxJava学习经验谈——map与flatmap
简介记录完了lift,再来看看另外两个经常被混淆的概念——map与flatmap。map的定义很容易理解,可以将它就是lift的“人性化”的延伸,但是flatmap就比较难以理解了,“扁平化map“是个啥?
2017-01-22 16:43:07
9552
原创 RxJava学习经验谈——lift操作
简介Lift操作是响应式编程中最重要的几个能力之一。了解了lift操作,对大多数的operator操作方法都能够理解了。
2017-01-21 19:16:18
3570
原创 Lollipop DevicePolicyManager学习(下)
3. 如何在主账户与被管理者账户之间做数据通信。a) 什么是userID刚才提到,Lollipop用来区分主账户与被管理账户的其实是一个int型数值userID。从UserHandler.class可以看到,这个userID是通过对uid作整除得到的:public static final int PER_USER_RANGE =100000;
2015-01-21 15:27:27
8286
1
原创 Lollipop DevicePolicyManager学习(上)
Android 5.0(lollipop)发布之后,看特性文档增加了不少有趣的东西。最近花了一些时间,研究了下其中Managed Profile的概念,简称MP,记录下来作为一些经验,有需要的同学请参考。 简介Managed Profile,简称被管理者账户。这个概念并不是什么新东西,因为早在4.2版本中,Android就引入了多用户机制来解决平板使用上的问题。而如今5
2015-01-16 16:27:02
8969
1
原创 Android 4.0 framework 数据业务学习总结(1)
简介本条目用于记录本人对Android framework侧数据业务的阶段学习总结。内容包括流程图,代码分析,BUG用例等。第一阶段学习成果本阶段主要注重对数据连接设置管理流程的学习,掌握数据业务的基本流程与构造。同时尝试解决部分简单BUG。数据连接设置管理介绍通过Setting的常规设置页面中的数据连接开关,打开/关闭数据连接业务。数据业务
2013-05-28 11:00:13
11581
原创 关于Handler二三事(下)
消息的注册到业务的实现从接触呼叫业务的第一天起,我就一直琢磨代码里成群结队的registerXXXX方法跟notifyXXXX方法究竟是个怎么关系。一个消息(Message)从注册到被处理(handleMessage)都经过了哪些步骤?为什么要通过这种设计来完成线程间通信?是什么决定哪些消息在哪些类中被处理?消息上报之后,framework层都完成了哪些工作?诸如此类,一言难尽。
2013-02-17 18:10:33
7925
1
原创 关于Handler二三事(上)
一直以来,Handler于我而言都是难以形容的大麻烦。姑且不论线程通信一二三,就算是如何利用Handler来实现各项业务间消息传输,我也只能粗浅的说说如何跟踪消息而已。跟它较劲了很久,零零碎碎总结了不少,总算是明白了些大概。把昔日所做的笔记记录下来,权当作经验与教训与各位分享。理解有误的地方,还请多提建议。 我理解的Handler回调先不说Handler,单问回调是什么,引用万
2013-02-16 22:04:17
10503
6
原创 紧急拨号的处理
问题描述紧急号码在过去的几个项目的开发中一直是难下定论的一项问题,原因在于针对不同CP平台,不同制式的数据网络,不同的运营商,都有不同的紧急号码,而且在无SIM卡情况下紧急号码是否能拨出也并无定论。常用的紧急号码中:911是北美大陆通用报警电话。08和112是全世界GSM通信网络共同的标准紧急电话110,119,120,122是国内大陆的匪、火、急救、交通紧
2012-12-31 10:23:32
12626
4
原创 关于GIT的常用TIPS
gitGit是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。管理leos的版本控制系统同android一样,都是git。git的说明文档很充分,这里不一一列出。只介绍几种经常用到的管理工具及命令。git clone,git pull 与 git pushgit clone 方法用于将服务器上分支克隆至本地。git
2012-12-19 15:29:01
2613
原创 本wiki的备份以及迁移方式
本wiki的备份以及迁移方式Lenovo MIDH智库的备份与迁移方式与其他mediawiki类似。这里主要用来记录本人在备份wiki过程中的几个重要步骤。[编辑]环境安装参考使用手册的wiki搭建一章。但是不需要设置安装步骤,仅仅需要将mediawiki安装到本机即可。注意apache2跟mysql的安装,mysql的默认用户是root。[编辑
2012-09-29 16:21:14
8367
翻译 Motion Sensors
Motion Sensors运动传感器In this document在本文档中,你会了解到Using the Accelerometer如何使用加速度传感器Using the Gravity Sensor如何使用重力传感器Using the Gyroscope如何使用陀螺仪Using the Linear Accelerometer如何使用线性加速度传感器Using the
2012-09-28 17:08:21
11698
原创 mediawiki(LM智库)搭建手册
最近利用Meidawiki在公司内网上模仿wikipedia搭建了一个知识共享库——LM智库,这里记录了搭建过程中需要的环境以及必要的步骤,有需要的同学不妨参考一下。Lenovo MIDH 智库搭建过程 搭建环境 搭建方式linux环境下Windows环境下 必要操作基本配置用户权限设置短网址设置默认皮肤设置更改网站的log设置上传文件配置插
2012-08-09 14:25:09
9068
原创 mediawiki(LM智库)使用手册
这是最近搭建公司内部wiki——LM智库的使用心得,每一位致力于wiki建设的同学都可以参考一下,而且这一定是你能找到的最方便的Mediawiki的操作手册。文中提到的大部分的文档操作都依赖于wiki所添加的插件。如果有疑问,可以参考mediawiki(LM智库)搭建手册一文。Lenovo MIDH 智库使用手册 如何上传文件 默认上传方式 批量上传方式
2012-08-09 14:19:59
10610
原创 小议UNSOL_RESPONSE_CALL_STATE_CHANGED与GET_CURRENT_CALLS
在之前的讨论中我们曾经看到,GsmCallTracker所维护的每一路GsmConnection都需要从modem侧及时更新当前通话状态。那么,这个CLCC是如何从framework侧发送的呢? 在ril.java中有方法getCurrentCalls(Messageresult),该方法即是将GET_CURRENT_CALLS的消息打包以socket方式发到cp侧,再转换为AT+C
2012-06-27 10:21:07
5738
1
原创 由项目的需求说开去
项目需求可以说是贯穿整个研发流程的核心。没有界定规范的需求自然也没有执行严格的研发过程。可惜我领悟的太晚,直到最近才意识到它对业务流程理解的重要性。 从android2.3的时代走到如今的4.0,通话业务的需求也随之有所变更。但单就通话业务以及其补充业务(supplementary service)的流程而言,本质上并无太多区别。以单卡项目为例,在2.3时代里我关注的与
2012-06-14 15:54:52
2712
原创 [shell]android_log.sh
在之前的代码分析过程中,免不了使用logcat来抓取log,但是一来有时候复现bug的时候不是忘了抓radiolog就是忘了抓logcatlog,二来随着系统版本的升级,local/log的位置也总是找不准。所以一怒之下只好翻看shell文档,写了这么个小脚本,用来保存离线log,初学写的不好的地方,还请指出。#! /bin/bash echo "+++++++++++++++++++
2012-05-14 15:47:13
2956
原创 Android Call 功能在各个frameworks层中的结构整理 (四)
终于到了CallManager.java。我对它的理解是,这个类是frameworks层在Call业务中面对App层的最后一层封装。通过这个类,我们可以对底层的业务做进一步归纳,实际上也是为PhoneApp提供了Call业务的控制接口(CallManager class provides an abstract layer forPhoneApp to access and control cal
2012-04-27 17:58:48
9385
原创 常用的兵刃(二)
上回说到linux下我常用的代码环境,这次主要讲讲windows下几个用的很称手的工具。 1. 智库软件wiz + dropbox 相较于linux用于代码的编写调试,windows环境对我来说更多的是用来做些辅助工作。平时文档的搜集整理,日常资料的整理等等。这里首先推荐智库智库软件wiz。 早在毕业前,我就对类似evernote这类
2012-03-29 16:19:23
2982
转载 Git 中文教程
原帖地址 http://www.linuxsir.org/main/doc/git/gittutorcn.htm介绍Git --- The stupid content tracker, 傻瓜内容跟踪器。Linus 是这样给我们介绍 Git 的。 Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用
2012-03-28 11:38:37
1113
原创 常用的兵刃(一)
当前我主要的工作环境在linux,当然也会在windows下写个文档看个图什么的。一年下来,接触到了不少的工具类软件,稍微梳理一下,也算是个总结。 linux下: linux主要用作代码编译和分析环境,几轮淘汰下来,最终留在电脑里头的不过如下几种常用的工具: 1. repo + git 这个工具自不用说,android
2012-03-28 11:29:51
1275
原创 Android Call 功能在各个frameworks层中的结构整理 (三)
接口的意义: 在最初学习JAVA的过程中,我就对接口这个概念始终非常困惑。不同于父类与子类之间的继承关系,接口对实现它的类所做的约束有限,而且很难界定哪些方法需要在接口中实现,而哪些不用。 直到有一天我得到了一份项目通话功能的需求文档。我突然意识到,接口的意义可能更多的是约束人而非代码,而接口的存在其实就是界定哪些功能需要在哪个模块中实现。所以我想,接口其实就是一份
2012-03-27 19:52:43
4082
9
原创 Android Call 功能在各个frameworks层中的结构整理 (二)
2. GsmCallTracker类,GsmCall类以及GsmConnection类需要理解的若干概念: GsmCall—GsmConnection—GsmCallTracker关系,android的register—notify模型,ringingCall,foregroundCall,backgroundCall 这三个类放在一起进行分析的原因并不是因为它们
2012-02-23 16:22:34
7494
Effective Java 第二版 中文版.pdf
2020-02-08
MIT小波滤波器组及其应用课件
2010-02-19
FSK原理解析(初等)
2010-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人