自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风居住的城市

菜鸟学习路上的点点滴滴

  • 博客(98)
  • 资源 (4)
  • 收藏
  • 关注

原创 LTE学习笔记--PHY--PDCCH

PDCCH (Physical Downlink Control Channel)是用来为下行链路发送信息的(DCI, Downlink Control Information) ,其传输的信息包括公共控制信息(系统信息,paging信息等)和用户专属信息(下行资源分配指示,UL grants, PRACH responses,上行功率控制参数等)。 PDCCH在时域上占用每个子帧的{1,2,3...

2018-03-09 14:09:23 5437

原创 LTE学习笔记--PHY--System Information Block

PSS和SSS之后,UE已经与小区取得下行同步,得到小区的PCI(Physical Cell ID)以及检测到帧的timing(即10ms timing)。接着,UE需要获取到小区的系统信息(System Information),以便接入该小区并在该小区内正确地工作。 系统信息是小区级别的信息,即对接入该小区的所有UE生效。系统信息是以系统信息块(System Information Bloc...

2018-03-09 12:15:37 4812

原创 LTE学习笔记--PHY--PSS和SSS

光有通信的频点并没有用。UE此时虽然可以接收到eNB的广播数据,但是无法解析出这些数据的具体内容。因此UE需要先实现与eNB的时间同步,只有在同步的情况下,根据事先约定的协议。就可以解析出包含在信号内的具体内容了。UE首先需要侦测的是PSS信号。 UE开机时并不知道系统带宽的大小,但它知道自己支持的频带和带宽(见36.101)。为了使UE能够尽快检测到系统的频率和符号同步信息,无论系统带宽大小...

2018-03-09 11:16:03 16749

原创 我的LTE学习笔记(总篇,CSDN下载链接)

本人自己总结的LTE学习文档,有时间会继续更新http://download.csdn.net/download/a34140974/10269899文档内绘图基本为本人绘制,敬请使用,但请标明出处。

2018-03-05 15:34:24 3192 1

原创 LTE学习笔记--PHY--扫频

UE在没有历史记录的情况下,需要扫描所有的可能频段,从而确定可用的通信频点,并尝试接入最强可用频点。

2017-07-09 00:00:43 2393

原创 LTE学习笔记--PHY--PHY下行物理信道排布(FDD)

下图是LTE物理层在1.4MHZ下的一种信道分布图:参考信号,即导频,用于信道估计或信道探测的一种已知信号下行参考信号:下行信道质量测量,信道估计,用于UE端的相干检测和解调。PFCICH:CFI=Control Format Indicatior,用来指明PDCCH在子帧内所占用的符号个数的。PDCCH可以使用1-4个symbol,可以静态配置,也可以动态采用调度算法

2017-07-08 23:58:52 3545

原创 LTE学习笔记--PHY-Symbol与CP

LTE采用了OFDM技术,子载波间隔Df =15kHz,2048阶的IFFT,则帧结构的时间单位Ts = 1/ (2048 ´ Df)=1/(2048*15000)s。一个slot=0.5ms=15360Ts。为了克服OFDM系统所特有的符号间干扰ISI。LTE引入了cyclic prefix的概念。CP的长度与覆盖半径有关,一般情况下配置普通CP即可。在覆盖范围要求较大的场景下可配置

2017-07-08 23:54:29 8322

原创 LTE学习笔记-PHY-PHY层概述

LTE支持多种带宽的配置,不同带宽的RB数量如下图所示:一个RB所占的带宽为180kHZ。如对于20M带宽配置的LTE配置。通过上表可以知道给配置下所能用于通信的RB有100个,则180kHZ×100=18M。首尾各留1M作保护带。我们首先来算一下LTE的最大速率。20M LTE有100个RB。从下图可以看出一个RB(PRB)在频域上又可分为12个15kHZ的的subcarrier

2017-07-08 23:48:13 5188 3

原创 LTE学习笔记--LTE整体架构和协议架构概述

1.1 LTE整体架构LTE(Long Term Evolution,长期演进)是由3GPP(The 3rd Generation Partnership Project,第三代合作伙伴计划)组织制定的UMTS(Universal Mobile Telecommunications System,通用移动通信系统)技术标准的长期演进,于2004年12月在3GPP多伦多会议上正式立项并启

2017-07-08 23:41:18 32049 2

原创 《TCP/IP详解》读书笔记

1 TCP/IP概述1.1 TCP/IP协议通常所说的TCP/IP协议指的其实是“TCP/IP协议族”,是指包括TCP、IP等网络协议在内的众多网络协议的集合。TCP/IP协议也可以认为是对OSI模型的一种实现(但它只有四层)。从底层到上层的结构如下图所示。图1-1 TCP/IP协议栈链路层主要是负责物理设备的驱动。网络层主要处理分组(可以简单的认为就是传输报文段)

2016-12-21 19:58:43 4926

原创 Android6.0的SMS(短信)源码分析--短信发送

1     SMS发送流程1.1   SmsManagerAndroid发送短信的接口可以认为是SmsManager,当然并不是所有的App都可以发送短信的,必须配置相关的权限。App中可以通过SmsManager.getDefault()得到SmsManager的单例。首先来SmsManager主要提供的接口有哪些。public static SmsManager

2016-03-23 16:10:18 11006

原创 Android6.0的SMS(短信)源码分析--短信接收

1     SMS接收流程Android6.0中对短信的处理比起老版本还是变化有点大的。在分析源代码之前,我们可以先猜测一下Android中接收短信的大致流程。首先根据之前分析phone应用的经验,猜测最先接收到短信消息的肯定是Modem,接着上报的RILJ,RILJ在通知到XXXTracker,之后也许会有个SmsManager的东西作统一管理,再之后就是App层。当然,这仅仅是猜测,到底是

2016-03-23 16:02:28 9653

原创 Android6.0源码分析—— Zygote进程分析(补充)

此博文为《Android5.0源码分析—— Zygote进程分析》的补充我们已经知道Android 5.0已经默认了ART,今天本想回去查看一下这个部分,于是回到init进程中去寻找源码,发现6.0的Zygote部分也小有变动,因此更新一下。首先是init.c变成了init.cpp,这其实也就意味着在init中增加了类的概念。但是仔细查看init.h发现并没有class关键字。只有很多的s

2016-03-17 17:17:12 1198

原创 Android6.0的phone应用源码分析(9)——UICC卡管理

这部分严格来说并不属于phone应用,但是考虑到手机卡与phone应用的密切关系,也就放在同一个系列了。1.1   UICC卡的各种状态这些内容一般都被定义在IccCardStatus类中。首先是卡的状态:public enumCardState {        CARDSTATE_ABSENT,  //表示掉卡        CARDSTATE_PRESENT,

2016-03-15 10:20:30 2811

原创 Android6.0的phone应用源码分析(8)——来电(MT)

1.1   TelePhony Framework当有新来电时,最先得到消息的肯定是Modem,接着Modem response到RILD,RILD通过“rild”socket  accpet得到的clientsocket将消息上传到RILJ。而在之前分析MO的RILJ时,已经知道存在着两种消息Solicited消息和UnSolicited消息。UnSolicited消息可以基本认定为是底

2016-03-07 14:31:03 3518

原创 Android6.0的phone应用源码分析(7)——RIL层框架分析2

这里再次 将Android6.0的phone应用源码分析(5)总最后的流向图拿出来从图中可以看到RILJ通过RILD向MODEM发送命令后,接受response是通过readerLoop异步进行的(?好像并不是异步,虽然在不同线程,但是加锁了,执行情况和同步基本一样啊)。这就存在一个问题:RILJ怎么识别response对应哪一个request?并且这个response返回给谁?从

2016-03-02 15:28:38 1108

原创 Android6.0的phone应用源码分析(6)——RIL层框架分析

通过之前的分析已经知道,RILJ存在着多个循环结构:1、Ril.cpp中的Event_loop负责接收来自RILJ的Request;2、reference_ril.c中的mainLoop主要是维护AT通道的打开状态,在AT通过出现问题时重启AT通道;3、Atchannel.c中的ReaderLoop负责接收Modem上报的ATResponse。如何让这三个循环正确有序的进行是RIL框架的关键。

2016-03-02 15:20:57 1376

转载 对IccCardStatus 的认识

转自:http://blog.csdn.net/lsdmx2016/article/details/9065895 IccCardStatus 用于描述手机所插入的手机卡的信息,包括卡的状态,PIN码锁定的状态,所包含的应用的状态信息。RIL.java 中获取得到SIM卡的信息后,将信息封装成IccCardStatus返回给UiccController.    具体的成员变量如下

2016-02-22 16:38:18 1326

原创 Android中的网络管理源码分析--netd

1      Netd简介Netd是Android的网络守护进程。NetD是个网络管家,封装了复杂的底层各种类型的网络(NAT,PLAN,PPP,SOFTAP,TECHER,ETHO,MDNS等),隔离了底层网络接口的差异,给Framework提供了统一调用接口,简化了网络的使用。NetD主要功能是:第一、接收Framework的网络请求,处理请求,向Framework层反馈处理结果;第二、监

2016-02-22 16:28:53 5328

原创 Android6.0的Looper源码分析(1)

1      Looper简介Android在Java标准线程模型的基础上,提供了消息驱动机制,用于多线程之间的通信。而其具体实现就是Looper。Android Looper的实现主要包括了3个概念:Message,MessageQueue,Handler,Looper。其中Message就是表示一个可执行的任务。消息创建完毕通过消息处理器Handler在任意线程中发送添加至Messag

2016-02-05 15:15:15 1885

原创 Android6.0的phone应用源码分析(5)——RIL层分析

1.1   RIL概述由于Android开发者使用的Modem是不一样的,不同方案使用的Modem也不一样,GSM和CDMA就差别更大了,所以各种指令格式,初始化序列都不一样,为了消除这些差别,Android将ril做了一个抽象,使用一个虚拟电话的概念。这个虚拟电话对象就是GSMPhone(CDMAPhone),Phone对象所提供的功能协议,以及对下层支撑环境的要求都有一个统一的描述,这个描

2016-01-25 13:39:33 3647

原创 Android6.0的phone应用源码分析(4)——phone拨号流程分析

1.1   Dialer拨号拨打电话需要开启Dialer(拨号盘),当用户触发onClick事件,DialtactsActivity的onClick()方法被触发:public void onClick(View view) {        switch (view.getId()) {//对触发的buttonID进行判断            case R.id

2015-12-15 16:22:31 6103

原创 Android6.0的phone应用源码分析(3)——phone 拨号UI分析

1.1   原生界面 Phone应用的UI设计直接关系到后面的去来电流程,因此有必要对Phone的UI做一定的介绍。下面是Android6.0的原生拨号界面:1.2   应用界面Phone的UI入口可以认为是DialtactsActivity.java的onCreate()。    @Override    protected void onCr

2015-12-15 16:11:52 2597

原创 Android6.0的phone应用源码分析(2)——phone相关进程启动分析

1.1   PhoneApp启动PhoneApp进程是在系统开机时启动的,和其他的很多服务应用或Activity一样,它是由AMS在SystemReady后启动的。其AndroidManifest.xml文件中有如下配置:                 android:persistent="true"//这里的true表示应用是在ActivityManagerSer

2015-12-03 09:28:16 5036 1

原创 Android6.0的phone应用源码分析(1)——智能手机的硬件结构介绍

1     智能手机的硬件结构介绍目前智能手机的硬件基本结构大多采用的是双处理器架构:应用处理器AP和基带处理器BP。其中应用处理器运行开放式操作系统以及操作系统之上的各种应用,负责了整个系统的控制;基带处理器则负责基本的通信功能,主要包括了数字基带芯片DBB和模拟基带ABB,完成语音信号和数字信号的调制解调、信道编码解码和无线Modem控制。智能手机的基本硬件结构图1所示。

2015-12-02 13:33:53 2116

原创 Android5.0源码分析—— Zygote进程分析

1      Zygote简介Android的应用程序一般都是由Java语言编写而成的,这样的应用程序需要运行在独自的Dalvik虚拟机之上。但是,如果在每一个进程启动时都在物理内存中创建和初始化一个Dalvik虚拟机,这无疑对系统的性能造成很大的影响。Zygote是Android系统中的一个非常重要的守护进程,所有其他应用程序的Dalvik虚拟机都是通过Zygote孵化出来的。通过这种方式,

2015-11-11 17:01:54 1104

原创 Spring中的jdbcTemplate.queryForObject()使用

用JavaSE写了个Spring的程序,搞了一下午,主要是对jdbc的配置和访问有问题1,老版本的书里很多使用的死simpleJdbcTemplate,找了半天,发现新版的Spring并没有这个类,取而代之是org.springframework.jdbc.core.JdbcTemplate。功能好像是simpleJdbcTemplate超集。2,jdbcTemplate.queryFor

2015-09-22 15:55:15 27385 1

转载 mysql my.ini配置

出处: http://wenku.baidu.com/view/8b6717b150e2524de5187ee0.htmlmy.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数。    my.ini分为两块:Client Section和Server Section。    Client Section用来配置MySQL客户端参数。

2015-09-22 11:10:00 475

转载 c文件操作

转载:http://www.cnblogs.com/duzouzhe/archive/2009/10/24/1589348.html文件的基本概念  所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内

2015-09-18 16:33:50 754

原创 Java.nio中socketChannle.write()返回0的简易解决方案

之前使用Java IO实现了一个文件传送的小demo,今天打算采用java nio重写一遍。首先,用nio写好文件接收端后,采用原先的IO程序测试,发现并不存在问题。接着,写文件发送端,ByteBuffer大小设置为1024,发送端分多次发送文件片段,在接受端组合形成文件,近而写入文件系统。程序写好后:1,用一个2K的文件测试,发现并无问题2,用一个44k的文件测试,发现接收端

2015-09-15 11:09:19 5245

原创 struts2 Action返回JSP页面CSS和JavaScript失效的解决方法。

问题:struts2 Action返回JSP页面CSS后失效问题分析:1,直接访问 XXX.JSP文件,发现CSS文件可以起作用;2,将这些CSS文件直接写入JSP页面中标签下,发现Action返回这些CSS在起作用。因此,CSS代码无问题,对于JSP页面CSS文件的路径无问题。问题在于对于XXXX.action来说。CSS文件的位置不对。比如一个登陆界面,一般都会将XXX.Jav

2015-08-28 15:44:55 2807

原创 Struts2的拦截器工作原理

当用户发来的HttpRequest进入struts2框架时,struts2框架不会直接执行Action中的execute()方法,而是首先创建一个ActionInvocation的实例。可以简单的认为ActionInvocation对象里面维护一个通过查询struct.XML 拦截器和动作得到的一个由拦截器interceptors和Action组成的对象栈。并且ActionInvocation

2015-08-27 14:07:26 983

转载 c++经典好书

初级:C++ Primer:比较经典,讲到C++语言差不多所有内容C++编程思想(Thinking in C++) :关于OO中级:Effective C++:覆盖了50多个条款,讲了一些你可能没有考虑过的C++规则。More Effective C++:上一本的续集Effective STL:类似Effective C++,主要面向于STL。这3本是姐妹书。Exc

2015-08-25 09:18:41 636

原创 Servlet和JSP简单理解

Servlet其实就是JAVA代码。从本质上可以将它理解为基于HTTP协议的一个服务器,它针对客户发来的数据(HTTP请求),回发对应的HTML文本给客户端。客户端通过浏览器通HTML进行解析,呈现最终的网页。        最简单的当然是回发静态页面。这种页面不需要服务器的任何处理,直接在服务器文件系统找到文件发送即可。甚至可以在服务器程序中构建字符串发送给客户端。如果客户发来的请求需要

2015-08-21 17:21:37 739

转载 forward与include转发问题(RequestDispatcher.include()(乱码问题分析及解决)

来自:http://www.360doc.com/content/11/0520/11/987036_118089168.shtml首先,sendRedirect与forward,include的最大区别是request,response.. sendRedirect产生新的请求与响应,前后已没有联系. 相当于在页面中重新输入一个URL,只是自动完成而已. forward,incl

2015-08-21 14:33:52 1867

原创 装饰者模式

装饰者模式可以动态的给一个对象添加一些额外的职责。假设你去饮料店,要了一杯加Milk和Soy的espresso。想象一下柜台是怎样给你打印发票和计算价钱的呢?饮料店可是有很多主饮和配料的,基本可以随意加配料。显然不可能为每一种组合都建立一个类。那怎么办?先从主函数开始分析:package Decorator;/** * Created by sgzhang on 2015/8/17.

2015-08-17 14:55:16 378

原创 适配器模式

适配器模式可以将一个类的接口转换成客户希望的另一个接口。当然,前提是这个类有能力实现客户希望的那些功能,否则转换毫无意义。现假设有一个Duck接口,它只要两个方法,定义如下:package Adaptor;/** * Created by sgzhang on 2015/8/17. */public interface Duck { void quack(); v

2015-08-17 13:32:10 401

原创 单件模式

我们知道,一般类的构造方法都应该申明为public,这样这个类才能被创建实例。这样的类在外部可以创建多个实例。如果想避免类被重复实例化,就需要强制手段了。显然,把这个类声明为静态的就可以了,但这样做这个类存在于整个程序的生命周期,并不好。我们真正需要的是,像普通类那样在用到的时候才被实例化。可以想到将类的构造函数声明为私有的,然后以一个类内的静态函数去调用这个构造函数并返回实例。如下pac

2015-08-14 17:26:56 509

原创 命令模式

有时候必须向某个对象提交请求,但是却并不知道关于被请求操作或请求的接收者的任何信息。命令模式的关键是一个抽象的Command类或接口。这个Command抽象类(或接口)里面包含了一个执行命令的方法execute()。这个方法由具体Command去实现。假设有一个遥控器,它有四个按钮,需要将其中的两个设计为灯(Light)的开、关,另外两个控制收音机(Video)的开、关。在这个例子中遥

2015-08-14 16:38:11 460

原创 java并发编程实战笔记(1)——代码可能不会依次执行

首先看程序/** * Created by sgzhang on 2015/8/14. */public class NoVisibility { private static boolean ready; private static int number; private static class ReaderThread extends Thread{

2015-08-14 09:17:23 643

我的LTE学习笔记

LTE自我学习资料,主要是AS相关,文档中的很多地方借鉴了金辉的书,并加上了很多我自己的理解和绘图,文档内大部分绘图均为本人绘图,敬请使用,但请标明出处。

2018-03-05

Java异步发送文件demo

java写的异步文件发送程序,由于win7带外数据的发送存在问题无法作连通性测试,因此本程序只做了简单的isReachable()连通性测试。程序采用了文件长度->文件名字->文件内容的顺序发送方式,没有对非文件进行甄别.

2015-09-08

QML俄罗斯方块源码

环境,windows+Qt5.9.1+Qt Creator 4.3.1(Community) 俄罗斯方块,其中网络对战功能只开发到一半

2018-08-31

NIO简易服务器框架、文件传输

服务器端采用了过滤器链的形式,过滤器目前暂只实现了一个简易的logger和一个文件拦截过滤器 客户端主要实现的是文件的传输 测试程序位于test包下 bug可能较多,只能保证基本的文件传输功能

2015-09-21

空空如也

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

TA关注的人

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