自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

时代我西的博客

一名不愿意透露姓名的Android工程师

  • 博客(775)
  • 资源 (2)
  • 收藏
  • 关注

原创 对工程师职位的发展一些理解

对工程师职位的发展一些理解这些理解都是对自己经历以及看到的现象总结的,本人自身毕业于普通二本计算机专业,水平也很一般,从几十人到十几万人的公司都待过,对于职业理解也是按照自己所见所闻讲解的,限于自己眼光局限,对每个人都不一样,如果有不对的地方,还望见谅。上一篇职业规划里面提到工程师的职业发展大概路径,大致分为技术和管理两个路线吧1.员工-->优秀员工-->技术骨干-->技术专家-->领域专家2.员工-->优秀员工-->技术主管-->高级主管-

2022-03-10 09:09:49 856

原创 工程师职业规划

工程师职业规划要素一:经营者思想1.把自己当企业经营,商业心态。2.企业的使命和成果,个人的目标要保持一致3.企业能为客户提供什么,把一个想法变成一个数字化的现实产品的能力4.企业需要不断更新和完善,工程师需要不断风险和完善自己的服务能力5.传达的价值与其他人有何不同6.企业的潜在客户,工程师如何做好个人服务能力的营销,变被动的简历投递,为主动的客户上门。能力三角形创建者:变革的能力领导者:建设团队的能力生意人:赚钱的能力完美的使命者:追求理想的能

2021-07-08 17:42:49 1108

原创 博客的开头

先简单说一下自己为什么写博客,从事安卓开发已经三年多了,也算是有一些心得体会,主要原因如下:1.学习最高的境界是讲述问题给别人,当你会向别人讲述这个技术点的时候呢,说明你已经融会贯通了。2.博客是最好的简历,这是一个很好让大家了解你的方式。3.好记性不如烂笔头,在好的知识点都有可能记不住,如果写下来,就不用担心了,随时可以复习。我写的都很简单,一般来说都是供自己复习查看用,...

2019-09-17 16:13:23 828

原创 Android开发艺术探索 第十二章

Android开发艺术探索 第十二章 读书笔记

2024-01-29 22:10:17 375

原创 Android开发艺术探索 第十一章

Android开发艺术探索 第十一章 读书笔记

2024-01-29 22:09:33 406

原创 Android开发艺术探索 第十章

Android开发艺术探索 第十章 读书笔记

2024-01-29 22:08:38 396

原创 Android开发艺术探索 第八章

Android开发艺术探索 第八章 读书笔记

2024-01-29 21:44:09 348

原创 Android开发艺术探索 第七章

Android开发艺术探索 第七章 读书笔记

2024-01-29 21:41:16 347

原创 Android开发艺术探索 第六章

Android开发艺术探索 第六章 读书笔记

2024-01-29 21:31:54 310

原创 Android开发艺术探索 第五章

Android开发艺术探索 第五章 读书笔记

2024-01-29 21:31:13 322

原创 Android开发艺术探索 第四章

Android开发艺术探索 第四章 读书笔记

2024-01-29 21:29:28 853

原创 Android获取mp3音频文件播放总时长

Android获取mp3音频文件播放总时长一般是需要文件的绝对路径,需要读取文件,转成媒体类解析,最好获取播放时长,然后关闭资源。/*** 获取音频文件的总时长大小** @param filePath 音频文件路径* @return 返回时长大小*/public long getAudioFileVoiceTime(String filePath) {long mediaPlayerDuration = 0L;if (filePat...

2022-03-12 17:42:04 5037

原创 Android Studio jni/c++代码提示和跳转

Android Studio jni/c++代码提示和跳转有2中情况:1,项目初始创建的时候,就选择支持native;2,项目开发过程中,添加native。出现无法跳转的大部分在第二种情况,因为一般第一种都会对于好版本。出现C++代码无法跳转,多半原因是版本没有对齐1.SDK 里面的NDK和CMAKE版本对不上,记得高版本和高版本对应,低版本和低版本不清楚对于的可以都选最低,或者最高也可以直接在配置文件里面指定版本...

2022-03-11 18:01:59 4521 1

原创 Android简单的布局优化

简单的布局优化Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,那么整个过程如果保证在16ms以内就能达到一个流畅的画面。检测:1. 设置 -> 开发者选项 -> 调试GPU过度绘制 -> 显示GPU过度绘制2. ADB指令打开调试GPU过度绘制 adb shell setprop debug.hwui.overdraw show 关闭调式GPU过度绘制 adb shell setprop debug.hwui.overdra...

2022-03-11 11:42:17 1893

原创 Android ImageView 的scaleType 属性

Android ImageView 的scaleType 属性 枚举值 ImageView.ScaleType CENTER 使图像在视图中居中,但不执行缩放。 ImageView.ScaleType CENTER_CROP 均匀缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。 ImageView.ScaleType

2022-03-11 11:40:57 1412

原创 Android EditText保留小数点后两位

Android EditText保留小数点后两位设置Edittext输入在Android xml文件里配置如下属性值:android:numeric="decimal"代码里面addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}...

2022-03-11 11:40:12 548

原创 CountDownTimer 倒计时器

CountDownTimer倒计时器计划一个倒计时,直到未来的某个时间,并定期通知//30000–从调用start()到倒计时结束并调用onFinish()的未来毫秒数。1000–接收onTick(长)回调的时间间隔。new CountDownTimer(30000, 1000) {public void onTick(long millisUntilFinished) {mTextField.setText("seconds remaining...

2022-03-11 11:28:52 645

原创 Android 隐藏虚拟按键和沉浸式状态栏

private void hideNavigationBar() { Window window = this.getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//布局位..

2022-03-11 11:15:21 2123

原创 车载DVD导航分类

车载DVD导航分类分类:  一、按车型导航分类:  1、专车专用型DVD导航:一个机器专配一款车型(多数需拆除原车CD)  2、通用型:加框可改装各种车型  3、分体机:专车专用导航细分产品,不拆除原车CD等零部件,升级DVD导航产品  二、按使用功能导航分类:  1、传统手写导航  2、声控导航:  1)、声控导航;  a、蓝牙一键通声控导航  优势:直接利用手机蓝牙和车载导航主机连接,蓝牙首次连接后,后续会自动连接。信号稳定,品质可靠;  b、外加通讯

2022-03-10 09:16:27 356

转载 Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)

在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的。写那篇文章的目的,是想彻底的了解从硬件到驱动,再到应用的运作流程。完成了之后,文章一直仍在草稿箱里面没发表;今天看到,决定整理一下,重新发表。目的是想和大家分享自己对Android系统的一点认识:以马达为代表,来考究“Android是如何一步步工作的。它从硬件设计,到Linux驱动,再到HAL,再到JNI,再到Framework,最后到被应用...

2022-03-08 20:51:49 638

原创 LeakCanary 使用

LeakCanary github地址:LeakCanary要使用 LeakCanary,请将leakcanary-android依赖项添加到应用程序的build.gradle文件中:dependencies { // debugImplementation because LeakCanary should only run in debug builds. debugImplementation 'com.squareup.leakcanary:leakcanary-android:

2022-03-07 21:42:49 2244

原创 地图经纬度计算相关

地图经纬度计算相关两个点于距离public static float distanceBetweenPointsAsFloat(double startLat, double startLng, double endLat, double endLng) {float[] results = new float[3];Location.distanceBetween(startLat, startLng, endLat, endLng, results);retur...

2022-03-03 18:01:11 215

原创 Android软键盘弹不出的问题

在布局加载的过程中是无法弹出软键盘的,所以需要适当的延迟一下软键盘的弹出//获取焦点editText.setFocusable(true);editText.setFocusableInTouchMode(true);editText.requestFocus();//延迟弹出软键盘Timer timer = new Timer();timer.schedule(new TimerTask(){@Overridepublic void run() {InputMethodManage

2022-03-03 17:33:56 3768

原创 Android延迟执行

1.直接休眠,只能用于次线程中//sleep设置的是时长Thread.sleep(1000);2.定时器,适用范围比较广TimerTask task = new TimerTask() {@Overridepublic void run() {//todo}};Timer timer = new Timer();timer.schedule(task, 1000);3.Handler,次线程使用的时候注意要记得先实现handler loopnew Handler()

2022-03-03 17:05:25 599

原创 Android 设置Edittext获取焦点并弹出软键盘

Android 设置Edittext获取焦点并弹出软键盘/*** EditText获取焦点并显示软键盘*/public static void showSoftInputFromWindow(Activity activity, EditText editText) {editText.setFocusable(true);editText.setFocusableInTouchMode(true);editText.requestFocus();//显示软键盘activity.get

2022-03-03 16:58:35 3637

原创 CRC(循环冗余校验)

在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。检测的方式有多种,常见的有奇偶校验、因特网校验和循环冗余校验等。循环冗余校验是一种用于校验通信链路上数字传输准确性的计算方法(通过某种数学运算来建立数据位和校验位的约定关系的 [1] )。发送方计算机.

2022-03-03 16:38:54 17795 1

原创 Android控件默认点击效果

Android控件默认点击效果Android最简单的默认点击效果:android:background="?android:attr/selectableItemBackground"设置前景色,前景色:foreground属性只能给控件和帧布局设置,其它的布局设置无效果,具体看Android源码;android:foreground="?android:attr/selectableItemBackground"默认有两种点击效果?android:attr/selectable

2022-03-03 16:29:57 1365

原创 Android 测试知识点总结

这里总结了一些Android测试知识点一. 安装启动卸载启动的方式分为:首次启动,热启动,冷启动, 在各个操作系统上(Android>=4.3,ios>=7.0,根据各个应用要求的最低系统)能安装成功,分别安装在手机内存或者sd卡上都能成功。app安装完成后的运行,可正常打开软件。app打开后,是否有加载状态进度提示,引导页是否正常。 应用管理器强行停止后启动, 应用管理器中清缓存启动。 正常卸载 安装分为全安装,升级覆盖安装..

2022-03-03 16:05:41 1283

原创 ViewGroup中bringToFront

ViewGroup中bringToFrontbringToFront就是把当前View提到画面图层的最上面来显示 public void bringToFront() { if (mParent != null) { mParent.bringChildToFront(this); } }Android中的ViewGroup是通过一个Array来保存其Children,当调用某个childView的bringToFront时,是将

2022-03-02 09:23:41 624

原创 SPI、I2C、I2S、UART、GPIO、SDIO、CAN、JTAG的区别

SPI、I2C、I2S、UART、GPIO、SDIO、CAN、JTAG的区别SPI全称及由来:SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。使用方法:SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。工作模式:SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号: (1)MOSI

2022-03-01 22:05:56 4812

原创 Android里面的架构

Android里面的架构为什么需要架构? 一个Activity走天下,包含各种模块和功能 臃肿类太多 不同功能,不同层次拎不清楚,混合在一起 重复代码太多,复用性为差 无法协作开发, 耦合严重,bug太多 等等 MVC最经典的是MVC架构。 XML的View层 Activity/Fragment的Controller层 数据Model层。 正在上传…重新上传取消优点:由于

2022-03-01 21:59:34 130

原创 一、Mavlink协议

一、Mavlink协议MAVLink通讯协议是一个为微型飞行器设计的非常轻巧的、只由头文件构成的信息编组库。它可以通过串口非常高效地封装C结构数据,并将这些数据包发送至地面控制站。该协议被PX4, PIXHAWK, APM和Parrot AR.Drone平台所广泛测试并在以上的项目中作为MCU/IMU间以及Linux进程和地面站链路通信间的主干通信协议。MAVLink最初由LorenzMeier根据LGPL许可在2009年初发表。二、数据结构Mavlink传输时基本单位是消息帧,消息帧的

2022-03-01 20:37:02 5897

原创 RPC和IPC

RPC和IPC什么是RPCRPC(Remote Procedure Call)即远程过程调用,它是一种通过网络从远程计算机程序上请求服务,在不需要了解底层网络技术的协议下,即可获取计算机进程中的数据。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC在OSI网络通信7层模型中,位于传输层与应用层之间,即位于会话层:RPC实现模式,就是我们常说的C/S结构,引用百度百科的定义:RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务

2022-03-01 20:34:37 2028

原创 GPS-GGA数据格式

GPS-GGA数据格式这是一帧GPS定位的主要数据,也是使用最广的数据。$GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符<CR>和换行符<LF>),分别用14个逗号进行分隔。该数据帧的结构及各字段释义如下:$GPGGA,<1>,<2>,<3>,&l..

2022-03-01 20:32:10 5755

原创 无人机架构

无人机架构基本设计需求,如:(1)慎思规划和反应式行为;(2)容许不确定性;(3)考虑危险;(4)灵活性强。闭环控制解决方案推荐用于不处理复杂外部事件的简单机器人系统。分层构架能很好实现构件的组织,但是在实时环境中处理外部事件时其反应过慢。推荐 TCA 用于较复杂的机器人项目,并已在众多移动机器人上得到应用。TCA 为性能、容 错、安全性和并发性提供了一套完整的任务协调机制和规定。TCA 架构由位于同一层次的任务或任务树组成。在运行过程中任务树会作很多动态调整以适应环境条件和机器人状

2022-03-01 16:52:57 4500

原创 无人机分类

无人机分类方式一、按飞行平台构型分类无人机可分为固定翼无人机、多旋翼无人机、无人飞艇、伞翼无人机、扑翼无人机等。二、按用途分类(最常见)无人机可分为军用无人机和民用无人机。目前超过 70% 的无人机使用于军事用途。1、军用无人机可分为侦察无人机、诱饵无人机、电子对抗无人机、通信中继无人机、无人战斗机以及靶机等。其用途也非常的多样化情报侦察侦察无人机通过安装光电、雷达等各种传感器,实现全天候的综合侦察能力,侦察方式高效多样,可以在战场上空进行高速信息扫描,也

2022-03-01 16:38:53 14946

原创 多旋翼无人机

多旋翼无人机的构成部分,多旋翼无人机的构成分为4个系统来说,分别是动力系统(包括供电系统)、飞控系统、视频系统、遥控系统。1)动力系统目前大型、小型、轻型无人机广泛采用的动力装置为活塞式发动机系统。而出于成本和使用方便的考虑,微型无人机中普遍使用的是电动动力系统。1. 螺旋桨:无人机产生推力的主要部件,常见的多旋翼无人机一般搭配4个螺旋桨,两个顺时针旋转,两个逆时针旋转。关于正反桨:正桨:俯视逆时针旋转(CCW)反桨:俯视顺时针旋转(CW)这是螺旋桨型号的具体分辨的方法,一般

2022-03-01 16:37:43 5075

原创 eventBus 流程大图

eventBus 流程

2021-11-27 11:46:08 102

原创 View的弹性滑动

弹性滑动弹性滑动的共同思想:将一次打的滑动分为若干次小的滑动并在一个时间段内完成。使用Scroller前面讲过用法了,Scroller本身不能实现view滑动,关键在于startScroll后的重新绘制,会在draw里面去调用computeScroll,再次执行获取x\y去执行滑动重绘。设计很巧妙,没有对view的依赖,也没有定时器的使用。private final Scroller mScroller;public ViewDemo(Context context) {..

2021-10-28 19:42:45 110

原创 View 的滑动

View的滑动主要有三种方式:View本身的srollTo/srollBy,通过动画,通过改变View的LayoutParams重新布局。1.使用srollTo/srollBy/*** Set the scrolled position of your view. This will cause a call to* {@link #onScrollChanged(int, int, int, int)} and the view will be* invalidated..

2021-10-28 19:41:17 60

Android动画DEMO

一些动画DEMO

2021-08-18

emb类图3.juth

自己写的UML建模例子,需要的可以参考一下

2021-08-18

空空如也

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

TA关注的人

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