自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 【Android】动画原理简介

动画框架原理现有的 Android 动画框架是建立在 View 的级别上的,在 View 类中有一个接口 startAnimation 来使动画开始,startAnimation 函数会将一个 Animation 类别的参数传给 View,这个 Animation 是用来指定我们使用的是哪种动画,现有的动画有平移,缩放,旋转以及 alpha 变换等。如果需要更复杂的效果,我们还可以将这些动画组合起来,这些在下面会讨论到。要了解 Android 动画是如何画出来的,我们首先要了解 Android 的 Vi

2020-09-28 18:02:05 2587

原创 【Android】动态加载SD卡的jar文件并更新工程中jar文件的方法

Android在API中给出可动态加载的有:DexClassLoader 和 PathClassLoaderDexClassLoader:可从SD卡中加载jar、apk和dex.PathClassLoader:只能加载已经安装搭配Android系统中的apk文件。这两个都是集成dalvik.system.BaseDexClassClassLoader,当类加载请求,首先委派给父类去完成加载,父类加载不了,则自己再去完成加载,我们可以利用这个机制反过来,自定义TestClassLoader去加载本地J

2020-09-27 18:00:52 334

转载 无线设计中LNA和PA的基本原理

对性能、微型化和更高频率运行的推动正在挑战无线系统的两个关键天线连接元器件的限制:功率放大器(PA) 和低噪声放大器(LNA)。使5G 成为现实的努力,以及PA 和LNA 在VSAT 端子、微波无线电链路和相控阵雷达系统中的使用促成了这种转变。这些应用的要求包括较低噪声(对于LNA)和较高能效(对于PA)以及在高达或高于10 GHz 的较高频率下的运行。为了满足这些日益增长的需求,LNA 和PA 制造商正在从传统的全硅工艺转向用于LNA 的砷化镓(GaAs) 和用于PA 的氮化镓(GaN)。本文将介绍L

2020-09-26 18:12:53 2188

原创 【Android】判断WiFi是否可以访问

有时候我们连接上一个没有外网连接的WiFi就会出现这种极端的情况,这种情况用常规方法判断网络连接发现是已连接,但是实际是无法访问网络,做api请求返回的可能是个xml或者html,我们可以通过ping网络来判断是否真的有网络连接。public boolean ping() {String result = null;try {String ip = “www.baidu.com”;// ping 的地址,可以换成任何一种可靠的外网Process p = Runtime.getRuntime().e

2020-09-25 18:01:02 237

原创 【Android】SparseArray和ArrayMap替换HashMap优化

在Android开发时,我们使用的大部分都是Java的api,比方HashMap这个api,使用率非常高,可是对于Android这样的对内存非常敏感的移动平台,非常多时候使用一些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android这样的移动平台,也推出了更符合自己的api,比方SparseArray、ArrayMap用来取代HashMap在有些情况下能带来更好的性能提升。介绍它们之前先来介绍一下HashMap的内部存储结构。就明确为什么推荐使用SparseArray和Array

2020-09-24 18:00:39 182

原创 【Android】ValueAnimator类解析

一、ValueAnimator的作用处理属性动画的类,作用于控件的属性,只针对控件的某一个属性来做动画,通过改变控件内部的属性值来达到动画效果的,例如改变控件的颜色值等等,二、ValueAnimator的使用(例如:两秒内TextView均速向右移动400,然后向左移动200)ValueAnimator animator = ValueAnimator. ofInt(0,400,200);animator.setDuration(2000);animator.setInterpolator(new

2020-09-23 18:00:50 943

原创 【Android】Android设备唯一标识简介

一、概念IMEIIMEI(International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,是由 15 位数字组成的 “电子串号”,它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。IMEI 码由 GSM(全球移动通信协会)统一分配,授权 BABT(英国通信认证管理委员会)审受。IMEI 组成为:1、前 6 位数(TAC,Type

2020-09-22 18:00:26 1681

原创 【射频】【5G】NR的Frequency Error指标上下行调制不同的配置原理

一、Frequency Error(频率误差)的具体体现频率误差是手机发射性能中重点考察的一项,在5G NR射频一致性测试中,可以看到6.4B.1.3项与其他项有一个明显的不同,在调制方式的配置上,Frequency Error同时显示CP-OFDM和DFT-s-OFDM两种调制方式,这带来了一定困惑,Frequency Error这项指标要同时考察两种调制方式的性能,还是要分别对上下行的调制方式进行配置,带着疑问往下看。二、Frequency Error(频率误差)的具体配置根据ETSI TS 1

2020-09-21 18:03:26 4121

转载 char 数组比 Java 中的 String 更适合存储密码的原因

另一个基于 String 的棘手 Java 问题,相信我只有很少的 Java 程序员可以正确回答这个问题。这是一个真正艰难的核心Java面试问题,并且需要对 String 的扎实知识才能回答这个问题。这是最近在 Java 面试中向我的一位朋友询问的问题。他正在接受技术主管职位的面试,并且有超过6年的经验。如果你还没有遇到过这种情况,那么字符数组和字符串可以用来存储文本数据,但是选择一个而不是另一个很难。但正如我的朋友所说,任何与 String 相关的问题都必须对字符串的特殊属性有一些线索,比如不变性,他用

2020-09-20 23:29:00 328

转载 【射频】MTK射频调试步骤

射频调试包括发送和接收两个大的方面,其中发送又包括了发送功率、相位误差、PVT、开关谱、调制谱调试等,接收包括灵敏度、RXloss、接收电平等。在开始调试之前必须明确手机的各种射频参数的状态。怎样明确手机射频状态:先对手机进行校准,校准的初始化文件一定要使用MTK 提供的原始文件(见图 1),这样才能明确手机的匹配状态,比如在全频段功率是否平坦(如果加权了就看不出来),TC 和 PA 之间的匹配是否做好了(如果改变了 Ramp 曲线的值就不好判断)。以 GSM 900M 为例 1 信道、62 信道、12

2020-09-19 18:57:19 7493 1

原创 【Android】简易自定义控件流程

android自定义组件一般有三种实现方式:一、组合控件:组合控件,顾名思义就是将一些小的控件组合起来形成一个新的控件,这些小的控件多是系统自带的控件。二、自绘控件: 何为自绘控件,就是完全用Paint和canvas画出来的,就是在onDraw()方法里面绘画,在onMeasure()方法里面进行测量,如果是容器在onLayout()方法中定位每个子组件。三、继承控件: 就是继承已有的控件,创建新控件,保留继承的父控件的特性,并且还可以引入新特性。自绘控件也分两种,自定义组件和自定义容器,自定义组件

2020-09-18 18:00:24 241

原创 【Android】APP中沉浸式状态栏的设计和实现

一、沉浸式状态栏简介在android4.4之后,api提供了透明状态栏的实现,以及沉浸式模式的实现。根据android开发官网来说,其实并没有沉浸式状态栏一说,只有Tranlucent Bar(透明状态栏) 和Immersive Mode(沉浸模式),下面是摘自官网的内容https://developer.android.com/training/system-ui/immersive解释:1.沉浸式全屏模式隐藏status bar,使屏幕全屏,让Activity接收所有的(整个屏幕的)触摸事件

2020-09-17 18:00:22 921

原创 【Android】Android View的绘制流程

Android 中 Activity 是作为应用程序的载体存在,代表着一个完整的用户界面,提供了一个窗口来绘制各种视图,当 Activity 启动时,我们会通过 setContentView 方法来设置一个内容视图,这个内容视图就是用户看到的界面。UI 管理系统的层级PhoneWindow 是 Android 系统中最基本的窗口系统,每个 Activity 会创建一个。PhoneWindow 是 Activity 和 View 系统交互的接口。DecorView 本质上是一个 FrameLayout,是

2020-09-16 18:00:27 88

原创 【Android】Webview与JavaScript交互介绍

交互方式总结Android 与 JS 通过 WebView 互相调用方法实现,实际上是:Android 去调用 JS 的代码JS 去调用 Android 的代码二者沟通的桥梁是 WebView对于 Android 调用 JS 代码的方法有 2 种: 1. 通过WebView的loadUrl() 2. 通过WebView的evaluateJavascript()对于 JS 调用 Android 代码的方法有 3 种: 1. 通过WebView的addJavascriptInterface()进.

2020-09-15 18:00:42 465

原创 【射频】【5G】SRS原理及应用

一、SRS概念SRS(Sounding Reference Signal)

2020-09-14 18:00:27 39475 13

原创 【Android】Android UI显示原理

一、window相关Window可以说是Android Framework层提供的一个最基础的UI组件管理类,PhoneWindow是它的唯一实现类。它屏蔽了开发者与WindowManagerService的交互,统一了UI设计,并统一接收用户交互事件,比如背景、title和按键事件等。Activity/Dialog/Toast的UI展现都是依赖于Window来完成。对于UI编写,开发者只需要使用View相关即可。View最终会以ContentView的形式设置给Window:PhoneWindow.

2020-09-11 18:00:47 453

原创 【Android】RxJava源码流程分析

一、RxJava介绍Rxjava是很多项目中都会涉及用到的第三方库,项目中,有用到Rxjava+retrofit进行项目开发,故理解这第三方库的原理能解决很多隐藏的问题。二、流程分析最终会形成一条被观察者链,每个被观察者对象都有各自的线程Schedulers用来切换线程。OkHttpCall封装okhttp3相关的操作。分5个步骤来分析流程:第一步:设置RxJava2CallAdapter在retrofit.addCallApdapterFactory(RxJava2CallAdapte

2020-09-10 18:00:52 215

原创 【Android】Activity Window WMS源码关系流程

一、类图关系system_server_AMS类图_1:Activity_Window_相关类图:system_server_AMS类图_2:总体类图:流程图:二、相关概念1、ActivityThread:为应用程序的主线程类,所有的APK程序都有且仅有一个ActivityThread,程序的入口为该类static main()函数Activity:Activity包含一个Window,该Window在Activity的attach方法中通过调用new PhoneWindow()创

2020-09-09 18:00:54 239

原创 【基带】手机外设之SIM卡槽电路及其变化

SIM卡槽是手机通讯必不可少的外设,从卸电池插卡到弹出式卡槽,双卡双待诞生后,从并行式双卡槽到现在重叠式双卡槽。SIM卡形态从曾经的大卡到Micro卡和NANO卡,SIM卡槽也随之经历了一系列变化。...

2020-09-08 18:01:37 8345

原创 【Android】Android中的位运算应用

很多人都可能在面试的时候遇到过这样一道题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,其中有一瓶含有剧毒(稀释后仍然具有毒性),你只有 10 条小白鼠,它们在喝下毒药后会马上死去,怎样利用它们在最短的时间内判断出哪瓶是毒药?我们都知道,在计算机语言当中,所有的数字最终都会转化为二进制进行计算,而二进制中每一个“位”能够表示两种状态,它们分别是数字 0 和 1。回到刚才的题目,每条小白鼠的生和死的状态都可以表示二进制中的一个“位”, 10 条小白鼠一共就能表示 1024 种组合状态,

2020-09-07 18:01:07 263

原创 【Android】Android加密和解密方式

一、不可逆加密不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。如信息摘要(Message Digest)和安全散列(Secure Hash)算法属于此类,常见的算法包括 MD5、SHA1、PBKDF2、bcrypt 等。特点:使用MD5和SHA进行加解密:// MD5加密private static String t

2020-09-04 18:00:37 2524

原创 【Android】Android Broadcast源码解析

Android Broadcast源码解析一、静态广播的注册静态广播是通过PackageManagerService在启动的时候扫描已安装的应用去注册的。在PackageManagerService的构造方法中,会去扫描应用安装目录,顺序是先扫描系统应用安装目录再扫描第三方应用安装目录。PackageManagerService.scanDirLI就是用于扫描目录的方法,由于代码比较少,这里我们直接把它贴了上来:private void scanDirLI(File dir, int flags,

2020-09-03 18:00:27 258

原创 【Android】Android Parcelable 源码解析

Android Parcelable 源码解析大家都知道,要想在Intent里面传递一些非基本类型的数据,有两种方式,一种实现Parcelable,另一种是实现Serializable接口。今天先不说Serializable 接口,只说Parcelable。我们知道,Parcelable 只是一个接口,里面有几个关键方法:一、writeToParcel /** * Flatten this object in to a Parcel. * * @param de

2020-09-02 12:29:47 393

原创 【射频】Smith圆图阻抗匹配变化规律

Smith圆图阻抗匹配变化规律一、Smith圆图结构二、阻抗匹配示例Smith圆图阻抗匹配滤波串C并L高通并L串C高通串L并C低通并C串L低通三、规律总结1、上感下容在Smith圆图中向上移动匹配电感,向下移动匹配电容2、LC选择顺时针移动:串L或并C逆时针移动:串C或并L3、滤波特性顺时针移动:低通滤波逆时针移动:高通滤波...

2020-09-01 18:03:29 8458 1

空空如也

空空如也

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

TA关注的人

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