自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (3)
  • 收藏
  • 关注

原创 工厂方法模式和抽象工厂模式

工厂方法模式 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 在工厂里面可以对对象的创建做严格的定义,client端直接通过工厂创建出来就可以使用了。public abstract class Product { //产品抽象类 public abstract void method(); }public class ConcreteProductA extends P...

2018-09-10 16:16:02 12854 3

原创 代理模式、装饰模式和适配器模式

https://www.cnblogs.com/iloveai/p/word2vec.html

2018-09-10 16:13:40 349

原创 设计模式之单例和模板

单例模式核心思想就是,构造函数私有化,通过静态方法获取唯一实例并保证线程安全,防止反序列化重新生成实例。饿汉式public class Singleton { private static final Singleton mSingleton = new Singleton(); private Singleton(){} public static S...

2018-08-22 10:30:44 317

原创 白话面向对象的六大原则

单一职责原则(Single Responsibility Principle) : 一个类中应该是一组相关性很高的函数,数据的封装.即不能把两个完全不同的功能放在一个类中,但是这个类或者函数职责的划分就因人而异了. 开闭原则(Open Close Principle) : 软件中的对象(类,模块,函数等)应该对于扩展开放,对于修改封闭.即提倡我们应该通过 继承 或者 实现接口的方式去扩展原有类的...

2018-06-28 10:52:25 325

原创 Android ActivityManagerService 启动流程总结

ActivityManagerService(AMS)是Android中核心的服务之一,主要负责系统中四大组件的启动、切换、调度及应用程序的管理和调度等工作。AMS启动整体流程图 从上图可以看出,经过的类不是很多,但是每个方法中的细分支很多,这我就不贴代码了,详细的逻辑请见源码,这个只是做个大概的总结,流程中的部分分支和作用请见图中的文字说明下面再说说两个关于内存管理的方法:...

2018-02-14 10:41:00 901

原创 SystemServer到Launcher

通过前面对android 启动流程到SystemServer的分析,紧接着我们来到了本篇博客,介绍重 systemserver 到 launcher 的启动过程。整体过程 从 SystemServer 到 Launcher 的过程其实就是从系统进程到应用进程的过程,他们之间通过binder通信来传递信息,并相互作用一起决定桌面应用(launcher)的启动。整体流程图 上图详细介绍了从 syst

2017-12-14 10:57:44 929

原创 android 启动流程到SystemServer

本篇博客基于 android7.1 主要介绍android启动流程中,从init开始到启动SystemServer结束为止,整个流程中各个方法里面主要做了哪些初始化操作,以便于对整个系统的启动有一定的了解。整体介绍图 注 图片来源于http://blog.csdn.net/dd864140130/article/details/57624948整体流程图流程中各部分的实现细节基于Linux内核的a

2017-11-25 12:23:59 574

原创 CNN卷积神经网络学习笔记

本篇博客主要归纳整理,CNN相关的基础知识和部分经典卷积神经网络的结构与特点。图片大部分来自Fei-Fei Li CNN课程PPT、网络和paper,如有侵犯请及时告知CNN相关基础知识卷积神经网络和全连接神经网络的区别区别:如上图所示, 1. 全连接神经网络中每个神经元或者filter都与输入图像的每个像素相关联,参数量大 2. 卷积神经网络中每个神经元或者filter只与原图中部分像素相

2017-11-09 13:11:44 2579

原创 联系人合并流程

本博客基于android7.1版本分析,仅用于沟通学习使用整体流程总结通过在ContactEditorBaseFragment中对option item link的点击跳转到ContactSelectionActivity界面通过LoaderManager去查询contactsprovider中的数据,并分成两部分显示数据上半部分显示系统建议合并的联系人最多显示4个,根据联系人的

2017-10-25 19:41:35 1663

原创 android导入vCard联系人流程

本博客基于android7.1版本分析,仅用于沟通学习使用上一篇博客介绍了 android导出vCard联系人流程 紧接着我们在这篇博客来看看它是如何导入一个vCard联系人的。整体流程总结通过在contacts联系人中界面跳转,我们跳转到了 DocumentsActivity 界面并选择我们需要导入的以 .vcf 结尾的vCard文件,将Uri以intent的方式返回给ImportVCardAc

2017-10-20 21:09:55 9804

原创 android导出vCard联系人流程

本博客基于android7.1版本分析,仅用于沟通学习使用背景介绍什么是vCard联系人vCard的定义我们可以参考维基百科的介绍,大概的意思是说它是一种以 .vcf 结尾的结构化文件,里面保存了诸如姓名、电话、地址、邮箱等个人信息,便于在网上或者设备之间进行数据交换,vCard联系人就是以这种格式存储的联系人信息。vCard有哪些版本通过查看源码 frameworks/opt/vcard 目录下面

2017-10-18 10:59:43 5878 1

原创 android 设置默认launcher

本博客基于 Android 7.0,只作为沟通学习使用。前言平时使用android手机的时候我们可能会遇到下面的情况,比如:我们有多个浏览器,当我们没有设置哪一个为默认的浏览器并点击了一行网址时,就会弹出一个系统选择框,让用户选择一个浏览来打开这个网址,并且会让用户选择只使用一次还是将你选择的浏览器设为默认的浏览。那么问题就来了,如果我不想出现这个提示框,我就想第一次开机时,就自动帮我

2017-09-27 14:13:55 10978 4

原创 contacts 账户同步

本流程图基于MTK平台 Android 7.0,本流程只作为沟通学习使用工作中遇到一个问题,手机登陆Google账户并同步账户里面的contacts后,本地保存的联系人数据被无缘无故的删除了,甚是奇怪,通过对比前后的数据库我们发现,同步后直接把我们的本地账户给删除了,所以导致属于这个账户的所有联系人都不见了,那么无缘无故为什么会删除本地账户呢?我们先抛出问题,等我们看完整个流程再回来看看真是什

2017-09-15 17:25:46 804

原创 Tensorflow 模型持久化

当我们使用 tensorflow 训练神经网络的时候,模型持久化对于我们的训练有很重要的作用。如果我们的神经网络比较复杂,训练数据比较多,那么我们的模型训练就会耗时很长,如果在训练过程中出现某些不可预计的错误,导致我们的训练意外终止,那么我们将会前功尽弃。为了避免这个问题,我们就可以通过模型持久化(保存为CKPT格式)来暂存我们训练过程中的临时数据。如果我们训练的模型需要提供给用户做离线的

2017-07-10 09:47:24 21890 65

原创 MMI工厂模式启动流程

基于android N MTK 平台 本文主要记录从 dialer 的 dialpad 输入特殊的字符串启动工厂模式的流程。整体流程图部分方法介绍DialpadFragment.afterTextChanged因为 DialpadFragment 实现了 TextWatcher 接口,并实现了 afterTextChanged 方法,当dialpad里面edittext 控件中内容改变时会回调这个

2017-06-21 13:33:01 1979

原创 Android Notification动态显示通话时间

基于android N MTK释放的源码 本文主要讲解如何在 IncallUI 的notification 上面不停地更新显示当前已通话多长时间,从而达到和incallUI通话界面上的通话时间一致。主要思路我们需要知道通话建立时的时间,即call 的状态从 INCOMING或者DIALING 转变成ACTIVE的时候时间每秒钟都会发生变化,所以我们就需要不停的更新notification的界面

2017-06-16 22:34:06 2429

原创 Tensorflow MNIST for Android

本篇博客主要介绍如何使用 tensorflow 通过 CNN 实现 MNIST 手写数字识别问题,并将模型持久化在Android端运行。整体介绍主要需要通过以下几步:模型生成过程:使用 tensorflow 通过 CNN 的方式实现 MNIST 手写数字识别,并将最后训练好的模型持久化(这里模型以 .pb 后缀名的方式保存,因为目前只在Android端使用模型,只会用到前向传播过程,不对模型再

2017-06-10 18:13:23 1662

原创 Android N Phone类图关系

上面一篇博客介绍了 Phone 进程的启动流程,这篇博客具体介绍一下 Phone 进程启动过程中相关类的作用。Phone对象关系图图片来自: http://blog.csdn.net/linyongan/article/details/51994817 Phone对象创建流程Phone进程相关类说明右键图片选择在新页面打开查看大图

2017-04-24 18:00:50 791

原创 Android N Phone进程启动流程

本流程图基于MTK平台 Android 7.0,本流程只作为沟通学习使用整体流程图部分关键点说明persistent属性以下来自官网介绍:https://developer.android.com/guide/topics/manifest/application-element.htmlandroid:persistentWhether or not the application should

2017-04-24 17:20:32 1377

原创 实现UTF-8、UCS2编码和解码

编码的原理知识可以看:https://www.zhihu.com/question/23374078 public void encodeDecode(){ String str = "测试字符转换"; try { //使用 URLEncoder、URLDecoder方法实现 String strGBK = URL

2017-04-20 14:01:25 6123

原创 Android N 通话界面_InCallActivity

本流程图基于MTK平台 Android 7.0,普通来电,本流程只作为沟通学习使用本篇博客主要来看看整个 IncallUI 界面的容器 InCallActivityInCallActivity启动流程我们知道正常情况下 InCallActivity 的启动分两种情况,MO 和 MT 我们就以 MO 为例来看看它的启动流程(MT其实也差不多) 最关键的两个地方:1.//InCallControlle

2017-02-06 20:36:59 7238 3

原创 Android N Call 状态分析

本流程图基于MTK平台 Android 7.0,普通电话,本流程只作为沟通学习使用通过前面关于 MO 和 MT 的分析和学习,我们大致了解了整个Phone的两个主要流程,今天我们要了解的是整个流程中 Call 的状态是如何变化的。这里有参考到 4.4 的状态分析,有些区别。DriverCall.State当 modem 发生状态改变时,它会通过 RILC 和 RILJ 将状态上报到我们 framew

2017-01-25 17:18:04 4220

原创 Android N 通话界面_CallButtonFragment

本流程图基于MTK平台 Android 7.0,普通来电,本流程只作为沟通学习使用前面介绍了一下 来电界面 的一些信息,接下来我们继续分析,看看通话界面中的 CallButtonFragment 的功能和作用。相关类图说明:BaseFragment 是 incallUI 中所有 fragment 的基类,这个类里面主要是调用了相关presenter的一些UI相关的方法,和通过了createPres

2017-01-21 19:05:03 3176

原创 Android N 来电界面_接听_挂断_短信回复

本流程图基于MTK平台 Android N,普通来电,本流程只作为沟通学习使用本篇博客主要介绍在 AnswerFragment 上处理用户的三个操作,分别是 Answer(接听)、Decline(拒接)和 onText(已发短信方式快速回复)Answer接听来电流程图这里主要是从用户向右滑动接听来电,一直到把消息发送给RIL的整体流程图。LOG信息01-16 09:56:20.217 D/InCal

2017-01-16 14:08:20 3804

原创 Android N 来电界面

本流程图基于MTK平台 Android N,普通来电,本流程只作为沟通学习使用通过前面 Android 7.0 Phone_MT来电流程 的流程分析中我们可以发现,最后是将来电的信息和状态传送到了 dialer 的 incallUI 里面,在 PhoneStatusBar.java 的addNotification方法中通过判断 isHeadsUped 的值来确定是显示 HeadsUp 还是全屏的A

2017-01-11 15:51:43 6992 4

原创 Android N 来电流程(MT)

本流程图基于MTK平台 Android N,普通来电,本流程只作为沟通学习使用本篇文章写作顺序是从modem上报消息,一层一层上报到incallUI,读者可以根据需求选择阅读顺序。frameworks/opt/telephony/当对方拨打电话后,运营商就会通过基站向含有特定SIM卡手机的modem发送指令,当手机modem收到这个指令后就会发生变化,并将变化信息通过AT指令集的方式传送给RILC,

2017-01-06 14:06:06 8642 2

原创 android N 拨打电话流程(MO)

本流程图基于MTK平台 Android N,拨打的普通电话,本流程只作为沟通学习使用整体流程图流程中部分重点知识packages-apps目录dialer应用的DialpadFragment.onClick中,通过用户输入号码并点击拨号按钮(R.id.dialpad_floating_action_button)发起MO在handleDialButtonPressed方法里面会判断输入框中是否含

2016-12-24 11:43:32 12565 2

原创 android M SYSTEM_ALERT_WINDOW权限问题

public class ForceOfflineReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { AlertDialog.Builder dialogBuilder = new AlertDialog

2016-10-18 17:22:29 2033

原创 OpenCV3——core组件进阶

颜色空间缩减:以BGR char无符号为例,我们的彩色图像是BGR三通道,每个通道的取值范围是0-255,那么一个像素的取值范围256*256*256这么多种,这个范围太大了,这就给我们的算法造成了严重的性能影响,所以我们就用到了颜色空间缩减。比如:将0-9范围的像素值定义为0,10-19为10,20-29为20,,,以此类推,那么每个像素值的取值就只有26*26*26种,这一下就将像素值的取

2016-10-17 19:46:55 726

原创 Android原生Contacts——界面和数据库

下面的讲解基于AndroidM整体认识 联系人应用其主要的功能就是管理手机中存储的联系人信息,为了更好的管理信息数据,我们就引入了数据库,所以对于联系人的整体认识,我们就可以将其看成是数据库,联系人的整个业务逻辑都会围绕数据库展开。源码路径和类android/packages/apps/Dialerandroid/packages/apps/Contactsandroid/packages/a

2016-09-24 17:35:03 5418

原创 Android原生应用Dialer--界面和数据库整体分析

下面的分析内容基于androidM整体认识对于dialer这个应用我们从宏观的角度去观察,其实可以将它认为就是一个拨号盘,因为它的主要作用就是键入字符串,至于这个字符串的作用可以有很多种,比如:拨号、暗码、快速拨号等等,当然dialer还有其它的作用,比如:通话记录、通话相关设置、通话记录搜索等等一些细分的功能,这里我们先从一个宏观的角度去理解它,第一眼把它看简单才能有信心往后面继续分析下去。涉及到

2016-09-23 14:13:14 5069

原创 OpenCV3——数据结构与基本绘图

图片是以数组的方式存在设备中的,数组中的值代表某个像素点的像素值,它的格式和范围受 颜色空间 和 数据类型 的影响。Mat类基础图像容器,它其实就是一个可以保存图片(一些数组矩阵)或者数组的容器,在opencv开发中我们经常需要使用它存储显示并传递一些数据。特点:1.不必为它手动开辟空间、2.不必在不需要的时候立即释放空间、3.mat由两部分组成,矩阵头(矩阵尺寸,存储方法,存储地址等信息)和一个指

2016-09-01 11:41:00 3056

原创 Opencv3.1.0+VS2015+Windows64安装环境配置

安装前准备http://www.daemon-tools.cc/home 虚拟光驱下载,用来加载VS的ISO文件 http://opencv.org/ opencv下载地址 https://beta.visualstudio.com/downloads/ visual studio 2015:VS下载地址安装步骤安装虚拟光驱使用虚拟光驱打开VS的ISO文件,然后安装VS,我这里选择

2016-08-30 10:31:31 3696

原创 Git经常使用的命令

本文参考stormzhang的文章:从0开始学习 GitHub 系列之「团队合作利器 Branch」1.配置账户信息:git config –global user.name “michael” git config –global user.email “[email protected]”2.配置alias 别名:git config –global alias.co check

2016-07-30 15:34:54 417

原创 InCallActivity 中speaker的开关控制

本文主要介绍介绍一下在Android6.0中,InCallActivity界面上控制speaker开关的一些逻辑和方法,可以让我们大体了解speaker的变化形式,对在通话过程中speaker变化有所了解。先来看看两张大图图一上图主要介绍了CallAudioManager这个类,最终会调用turnOnSpeaker这个方法去打开或者关闭speaker,上图主要画了涉及到调用turnOnSpeaker

2016-07-26 15:34:53 1332

原创 EventBus原理详解

在EventBus 3.0 使用介绍 这篇博客中介绍了关于EventBus的一些使用方法,下面我们就来看看它内部的具体实现吧!流程图先来一张整体流程图: 思路图在看看register 和 post 的过程思路图:registerpost通过上面的几张图,我们可以大致了解eventbus的工作流程,下面我们在来介绍一下这个流程中比较重要的几个方法重要的方法register中重要的方法 Lis

2016-07-24 14:59:56 4552

原创 [CTS]PhoneNumberUtilsTest-- testGetMethods&&ManagedProfileTest-- testManagedContacts

[CTS]android.telephony.cts.PhoneNumberUtilsTest– testGetMethods [CTS]com.android.cts.devicepolicy.ManagedProfileTest– testManagedContacts

2016-07-23 12:41:46 3407

原创 读取SIM卡中联系人流程

本文主要讲USIM卡插入手机后读取卡中contacts信息的流程。先介绍几个类的作用:IccProvider:对外暴露的接口,我们通过它来查询SIM卡中的contacts信息IccPhoneBookInterfaceManager: PhoneBook操作的服务IccPhoneBookInterfaceManagerProxy:对外的PhoneBook操作服务, 上面类的代理.IccReco

2016-07-21 20:41:29 8749

原创 EventBus 3.0 使用介绍

EventBus3.0(greenrobot),它是一款针对Android的发布/订阅事件总线。它可以很方便的让我们在各个组件之间,组件和线程之间进行通信,并具有很好的解耦特性。 Publisher 就是发布者、Subscriber 就是订阅者 ,它的大致流程就是:发布者发布事件给EventBus,EventBus将事件转发给注册了的订阅者。 它的优点如下:simplifies th

2016-07-11 16:46:23 534

转载 Android Studio gradle的配置与介绍

1、gradle的简单介绍Gradle是可以用于Android开发的新一代的Build System,也是Android Studio默认的build工具。其实Gradle脚本是基于一种JVM语言— Groovy,再加上DSL组成的。由于Groovy是JVM语言,所以可以使用大部分的Java语言库。所谓DSL就是专门针对Android开发的插件,比如标准Gradle之外的一些新的方法(Method)

2016-07-08 11:25:44 341

libandroid_tensorflow_inference_java.jar

tensorflow通过bazel编译生成的jar包

2017-06-09

libtensorflow_inference.so

tensorflow通过bazel编译生成的so库

2017-06-09

android_N_MT_flow

android 7.0 完整的MT流程图

2017-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除