- 博客(35)
- 收藏
- 关注
原创 Android开发-之屏幕适配
Android 系统能发展到今天,离不开其开源性,但是随着越来越多的设备接入 Android 系统,并对 Android 系统进行各种各样的定制,导致长期以来出现了各种碎片化严重的问题。例如,Android 屏幕尺寸多种多样,如 5 寸、5.5 寸、6 寸、6.4 寸 等等,当然,屏幕分辨率也是多种多样,这很容易导致同一元素在不同手机上显示的效果不同的问题,因此,Android 应用开发中的屏幕适配工作也越来越重要。本篇文章就介绍一下 Android 中屏幕适配相关的知识。
2024-02-08 17:27:11
1257
原创 车机开发之必要了解的shell脚本
前端时间做了个需求,涉及到了shell脚本的编写和修改;把其中用到的命令记录下来以备不时之需。这个脚本主要是放在system/bin/目录下,启动的时候去执行;因为涉及到selinux权限问题,所以怎么才能不重启去执行脚本来验证呢;这样就可以了。
2023-07-02 16:49:17
416
原创 车机开发之语音中界面显示
随着汽车的智能化,车内语音的重要性自然就提升了,这次先不说语音的工作原理,先讲一下语音工作中遇到的一个问题和解决方法;之前做App,基本没想过没有界面的app的工作原理,也只是了解过像推送这种确实不需要界面的功能;现在做了语音开发之后,对service和window有了进一步的认识;
2023-06-21 17:09:53
490
原创 【Handler机制分析】
从Handler的初始化,我们可以看到,初始化的同时会通过Looper.myLooper()获取了一个Looper对象,并与Looper进行了关联,然后通过Looper对象获取了消息队列。以上就是Handler机制的原理,大致可以总结为:在子线程中Handler将消息发送到MessageQueue中,然后Looper不断的从MessageQueue中读取消息,并调用Handler的dispatchMessage发送消息,最后再Handler来处理消息。当使用post发送消息时,callback就不为空。
2022-11-02 13:00:16
561
1
原创 Android工程模块化(1)
模块化原因和目的 基于对工程模块化的研究,打算把模块化运用到工程当中;并不是基于人员扩充,易于开发等(这些估计后边会用到),因为业务发展的确实慢。通过对工程的模块化,自己也可以熟悉这个过程中的难点和问题,扩充自己在架构方面的知识;重构过程先上一个图:这个是第一阶段模块化之后的模块图;第一步:先把第三方库抽象出来,自己定一个个config.gradle,然后在根build.grad...
2019-08-17 15:52:17
281
原创 Multidex解惑
做安卓开发的应该都遇到过这样一个问题:典型的引用方法超过了65536的错误,构建的时候会报错;为什么会这样呢? 65536是单个dex文件内可调用的方法数,google用的是个short int;那dex文件又是什么? dex文件是之前dalvik虚拟机上执行的文件(5.0开始是AOT),类似jvm虚拟机执行的是字节码文件; 随着应用程序越来越大,包含的方法越来越多,就产生了以...
2019-07-24 11:08:30
330
原创 Android网络抓包分析总结
1,现在公司网络,用fiddler和charles不能抓包,估计不在同一个网段,解决办法现在暂时没想出来2,android studio的 profile一直报Advanced profiling is unavailable for selected process,配置到sdk 26还是不行最终办法还没想出来...
2019-06-17 20:33:54
1848
原创 couldn't find xxx.so文件(一个由引入第三方功能引起的血案)
进入公司要求使用视频通话,要求客户端预研某某第三方视频继续,这里必须吐槽下,集成文档真的是太落后了。 这里就因为引入.so文件,一直报“couldn’t find XXXX.so”错误。下边介绍引入.so库的正确姿势; android studio:3.4.0;第一种:app/libs文件夹下直接引入如图:在model的build.gradle的android闭包里加入s...
2019-06-17 19:43:00
858
原创 计算机中的总线中断概念
当cpu和其他的输入输出设备交互的时候,应该怎么办呢,科学家们就想出了一个办法,牵一根线,连接每个设备,并把其他设备都编上号,想访问谁了就在总线上“吼一声”; 轮询:如果把硬盘的某块数据搬到内存,cpu发了命令,然后就每隔段时间就来问一次:好了没有? 硬盘:没有。 “好了没有”, “没有”;这就叫轮询,缺点就是一直占用cpu,直到做完这件事(可以理解为同步) 中断:这样子比较浪费,科学...
2019-06-03 20:50:30
1500
原创 Androidx迁移爬坑指南
步骤官方文档:https://developer.android.google.cn/jetpack/androidx/migrateAndroid Studio 3.2及以上,Refactor > Migrate to AndroidX ;gradle.properties 文件 添加:android.useAndroidX=trueandroid.enableJetifie...
2019-05-16 14:40:01
941
原创 自定义View总结(一)
继承ViewGroup自定义View前奏 这段时间研究了下自定义view相关的知识,重写onMeasue,onLayout,onDraw这几个方法,大家估计都说的上来,但是,什么时候重写哪个方法,其实不见得每个Android开发都能说的上来。 自定义view应该有差不多四种情况:1,继承View,重写onMeasure,onDraw,或者重写其中一个来达到自己的目的;2,继承某个控件...
2019-05-08 20:24:11
161
原创 论炒股和工作的关系
文章目录获取的钱上来看获取的价值来看不是专业炒股人去炒股的方法获取的钱上来看 这里我只针对一般上班族开讨论。从短期来看,如果在牛市,放在股市里面十万块,应该跟一般的上班拿工资来的差不多,如果拿着不放的话,有些新手快进快出,最后一看反倒没挣钱(15年牛市过来人),如果跌入熊市还不收手的话,估计还赔不少。 从长期来看,这个时候又得分为你是一直看盘还是放着等待。如果看盘回一直影响工作,对一般上班族...
2019-03-07 15:22:55
281
原创 解决"requested upstream branch 'origin/master' does not exist"
问题:1、本地初始化了git仓库,放了一些文件进去并进行了add操作和commit提交操作;2、github创建了git仓库并建立了README,.gitignore等文件;3、本地仓库添加了github上的git仓库作为远程仓库,起名origin; git remote add origin 远程仓库地址4,本地仓库也远程仓库关联 git branch ...
2019-02-26 20:15:25
36887
11
原创 Android中传递对象列表的几种方式
第一种:如果传递的是List<Object>,可以把list强转成Serializable类型,然后通过 Java代码 putExtras(key, (Serializable)list) 方法传递过去,接受的时候用 Java代码 (List<YourObject>) getIntent().getSerializable(key) 就可以接受到List...
2019-02-19 17:08:21
844
原创 ConstraintLayout 总结
在学习过程中把一些重点记录下:1,链,在链头的控件设置 layout_constraintHorizontal_chainStyle属性:设置链式模式,有三个值:CHAIN_SPREAD —— 展开元素 (默认);CHAIN_SPREAD_INSIDE —— 展开元素,但链的两端贴近parent;CHAIN_PACKED —— 链的元素将被打包在一起。可以延伸出两种情况...
2019-01-04 16:33:41
239
原创 Android 进阶图谱
2019年Android 查缺补漏 后续继续补充;自己参考总计的,到时候各个击破,形成自己的体系。下边这个文章总结的不错:https://github.com/CyC2018/Interview-Notebook/;参考;https://blog.youkuaiyun.com/d29h1jqy3akvx/article/details/80276382;htt...
2019-01-02 17:13:20
184
原创 No key with alias '***' found in keystore *** 解决方法
今天遇到一个报错,Android Studio编译release版本出现以上错误。解决姿势: 见下图,这两个值要对应。 如果不小心忘了,可以使用命令:修改keystore的alias:keytool -changealias -keystore test.keystore -alias key_name -dest...
2018-12-28 12:38:43
18368
6
原创 App版本更新总结
今天遇到一个问题,就是开发的app要覆盖之前外包公司开发的app;1,包名:通过命令 adb shell dumpsys window | findstr mCurrentFocus 获取包名2,build.gradle 文件修改 versionCode,最好取一个比较大的值;这是内部版本号,仅用于确定一个版本是否比另一个版本更新,而较高的数字表示更新的版本。versionName是...
2018-12-21 17:02:44
268
原创 minSdkVersion targetSdkVersion 之间的关系
Android 工程师应该对compileSdkVersion,minSdkVersion比较了解,从字面意思上也可以看的出来,但是targetSdkVersion 直接翻译过来就是 目标sdk版本,但是怎么用,限制是什么,不一定所有的Android工程师都能说的清楚。 minSdkVersion:可运行应用的最低版本的 Android 平台,由该平台的 API 级别标识...
2018-12-13 15:05:48
2309
原创 一个屌丝程序员的感情线(6)
小静等她们收拾好之后来到我屋里。 博主没忍住,直接包住了小静,小静就象征性的反抗了一下,两个热烈的嘴唇咬在了一起。两个人的初吻就这样“灰飞烟面”。 不知道大家有没有同感,当两人拥吻的时候,男人的手会不自觉的上移,当然楼主还是没有进一步的动作,虽然饭老师教过很多次,但是楼主还是不知道该怎么进行下一步,主要是没有做好准备(不要喷楼主,是真的),而且两个房间离的很...
2018-12-10 20:08:07
198
原创 一个屌丝程序员的感情线(5)
今天之后应该算是基本上确定是我的女朋友了,心情真是无比激动啊。 周末的时候,本来想约出来玩,但是她跟同学一起兼职了。好吧,那博主只能在学校里浪了。 后来接到电话说下午一起吃饭。“哦吼”,又可以见面了。 想着买个什么礼物作呢,因为重庆雾都和山城的原因(估计是),在冬天,很多重庆这边的人的手会不同程度的冻,小静也有这样的问题。最后决定买副手套送给她...
2018-12-04 20:13:52
233
原创 一个屌丝程序员的感情线(3)
一阵暖流从手心直冲脑海,对于闷骚男来说第一次牵女孩子手,斜眼望过去,小静的脸有点微红。牵手之后,以至于不知道怎么走了,就进了一家adidas店,逛了一圈就出来了。 说实话这个时候气氛是有点尴尬的,然后走进了一家书店,彼此找了一些书看了下。 这个时候差不多快中午了,相约去吃午饭,出门的时候我又想牵小静的手,可是她拒绝了。出了大门她就挽起了我的胳膊,感觉怎么老夫...
2018-11-26 16:58:19
182
原创 一个屌丝程序员的感情线(2)
看到来电一刹那,就感觉是她(这么早就来了心灵感应),然后互相寒掺了下,聊了各自的专业,爱好,平常喜欢去哪里玩等等。第一次嘛,都还比较矜持,差不多20分钟后,时间差不多了(那个时候电话费还是比较贵的,后来知道,当时第一句话就把她搞生气了,“是不是比较无聊,所以想起我来了”,那个时候还是经验不足)。 那个时候心里无比激动... 回宿舍之后,看会电影(自己不喜欢游...
2018-11-20 15:17:36
187
原创 一个屌丝程序员的感情线(1)
博主09年7月毕业,算起来差不多9年半了,中间曲曲折折,技术说起来进步不大,所以也没有什么干货跟大家分享。接下来博主打算分享一下自己的感情线,练习一下自己写博客(吹牛逼)的能力。 为什么分享下感情的事情呢,一是回顾下自己的经历,总结一下,二是跟一些还在为追不到女孩子的男同胞分享下经验,当然不是每个女孩子都适用。 先从上大学之后开始,其实高中快毕业的时候,前...
2018-11-19 18:03:21
204
翻译 Retrofit 官方文档翻译
介绍Retrofit 把 HTTP API 转成 a Java (接口)interface.public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user);}The Retrofit class 生成一...
2018-05-19 22:32:25
368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人