
Android开发知识
文章平均质量分 78
快乐李同学(李俊德-大连理工大学)
B站/微博/微信公众号:快乐李同学。
大连理工大学软件工程2020毕业学生。
大连理工大学2018-2019学年科技创新奖学金。
2个国家级项目,2个国家级奖项,5个省级奖项,8个校级奖项(总项目经费和竞赛奖金达2万2千元)。
2018-2019年在中国核心期刊《现代计算机》发表2篇项目相关论文,分别署名第一、第二作者(知网可查)。
2018-2019年申请2份项目软件著作权,并发布软件(编程乐园、编程学院)到Google,腾讯,百度,华为,小米等应用商店。
大学英语六级568分。
展开
-
谷歌应用商店上传aab大小可以超过150MB吗?Can the Android App Bundle‘s size be over 150MB?(Google Play, aab, Android)
This week, my Android App Bundle's size reached 161MB after introducing several new features. I was frightened that my aab's size exceeds the size limitation of Android App Bundles. But I tried to upload the oversize aab to the Google Play and it worked.原创 2022-11-25 12:21:01 · 998 阅读 · 0 评论 -
2021年最详细的Android屏幕适配方案汇总
1 Android屏幕适配的度量单位和相关概念建议在阅读本文章之前,可以先阅读快乐李同学写的文章《Android屏幕适配的度量单位和相关概念》,这篇文章包含了阅读本文的一些基础知识,推荐阅读。2 Android屏幕适配的解决方案2.1 Android屏幕适配前言Android屏幕适配是一个亘古不变的难题,在百度或者Google搜索相关的关键词,我们总能找到各个年代所流行的Android屏幕适配方法。但是由于时效性的原因,2021年的今天出现了新的Android屏幕适配方法,并淘汰了部分以前旧的And原创 2021-04-09 20:16:36 · 7292 阅读 · 5 评论 -
2021年最全Android屏幕适配的度量单位px dp(dip) ppi dpi sp pt的区别(最详细,屏幕尺寸,屏幕分辨率,屏幕兼容,屏幕适配)
1 Android屏幕适配相关概念1.1 屏幕尺寸(Screen Size)屏幕尺寸是屏幕的对角线的长度,单位是英寸,1英寸等于2.54厘米。比如常见的屏幕尺寸有3.5、4.0、5.5等。1.2 屏幕分辨率(Screen Resolution)屏幕分辨率是指在横向和纵向上的像素点数、单位是px(pixel),1px等于1个像素点,一般设备的屏幕分辨率以“纵向像素x横向像素”来表示,例如1920x1080。1.3 度量单位px、dp(dip)、ppi、dpi、sp、pt1.3.1 像素px(pix原创 2021-04-03 16:35:48 · 6965 阅读 · 15 评论 -
Android中drawable或mipmap文件夹存放图片的区别(详细解释)
1 问题背景当在Android Studio来新建一个Android项目,该项目有如下的目录结构:Android项目的某个模块中的res文件夹下,有很多以drawable或mipmap开头的子文件夹,这些子文件夹都是用来存储图片的,那么他们之间有什么区别呢?2 Android中drawable或mipmap文件夹存放图片的区别2.1 结论先说结论:应用图标的图片资源存放在mipmap系列文件夹中,而其余图片存放在drawable系列文件夹中。2.2 Android官方对drawable和mip原创 2021-03-08 18:52:01 · 11908 阅读 · 1 评论 -
2021年最新Android开发工程师成长路线(架构师,职业规划,NDK,Flutter,Framework,UI,性能优化)
1 文章背景最近博主李同学在网上看到下面这张程序员职业生涯规划路线图,因此便想到作为一名Android开发工程师,其未来职业生涯应该如何规划呢?近几年,Android 开发的套路日趋成熟,越来越多的 Android 工程师获得了「高级」的称号,也有不少人在参与公司的 App 从无到有再到火爆的整个开发过程中,顺理成章地拿到了 Leader 职位。但对于自己的水平,多数人却并不满意,甚至有不少人觉得自己的水平被同事和老板「高估」了。市场真正需要的所谓「高级架构师」到底需要具备什么条件?在此和大家探讨一原创 2020-10-04 02:08:58 · 8954 阅读 · 30 评论 -
安卓onNewIntent()方法的生命周期和应用场景
一、问题背景博主在2020春招中的Android开发岗位面试中,多次被考察到Android安卓4种启动模式的区别和应用场景,如美团的一面和斗鱼的笔试。而singleTop和singleTask启动模式都会调用onNewIntent()方法,但是《Android第一行代码》和《Android艺术开发与探索》对此部分内容的描述少之又少,因此博主在网上搜集了相关的内容并作出了以下总结。[1]关于o...原创 2020-05-04 00:17:40 · 1549 阅读 · 0 评论 -
Android安卓4种启动模式的具体应用场景(standard,singleTop,singleTask,singleInstance)
一、问题背景博主在2020春招中的Android开发岗位面试中,多次被考察到Android安卓4种启动模式的区别和应用场景,如美团的一面和斗鱼的笔试。但是《Android第一行代码》和《Android艺术开发与探索》对此部分内容的描述少之又少,因此博主在网上搜集了相关的内容并作出了以下总结。二、Android安卓4种启动模式的具体应用场景Standard:非以下特殊场景的普通Activit...原创 2020-05-04 00:12:26 · 2581 阅读 · 6 评论 -
《Android开发艺术与探索》中对前台任务栈和后台任务栈的正确理解
一、问题背景在《Android开发艺术与探索》的第1.2.1章节的singleInstance启动模式中,作者举出了下面的一个例子:在一个应用中,它有A、B、C、D这4个活动,其中C是主活动,另外A、B的启动模式为standard,而C、D的启动模式为singleTask,并将C、D的taskAffinity属性设定为不同于该应用包名的一个字符串。这样可以保证A、B在名字为包名的任务栈中,而...原创 2020-05-03 23:29:14 · 1410 阅读 · 2 评论 -
[最全]Android安卓架构MVC、MVP、MVVM之间的区别和联系(图解+案例+源码)
一、问题背景博主最近在准备春招面试中介绍自己简历中Android项目的MVP架构,但是博主发现若自身不彻底弄懂Android安卓架构MVC、MVP、MVVM之间的区别和联系,博主将无法准确地向面试官讲解自己Android项目的MVP架构,因此博主浏览了相关文章,做出了以下总结。二、Android安卓架构MVC、MVP、MVVM1.MVC(Model View Controller)MVC各...原创 2020-03-22 15:21:09 · 11831 阅读 · 6 评论 -
[全网最新最全]2020年国内和国外安卓应用上线上架应用市场渠道集合(关键词:apk,发布,Google Play,Android,详细步骤介绍流程)
想要把APP上架到应用市场都要先注册开发者账号才可以。这里的方法包括注册帐号和后期上架及一些需要注意的问题。注意:首次提交应用绝对不能随便删除,否则后面再提交会显示应用APP冲突,会要求走应用认领流程,那个时候就会相当麻烦啦。1、腾讯应用宝(必须:软件著作权)腾讯开放平台地址:http://open.qq.com注册开发者帐号地址:https://ssl.zc.qq.com/v3/index...原创 2020-03-05 19:06:36 · 31568 阅读 · 14 评论 -
2020年国外安卓应用上线上架应用市场渠道详细步骤介绍(关键词:APP,apk,发布,Google Play,Android,流程)
一、问题背景作为一名安卓开发者,不管我们还是大学生、找工作的应届生还是已经工作的码农,如果我们能把自己开发的应用发布到国内和国外Android安卓应用上线上架应用市场,这都能作为我们安卓开发的实力体现,因为应用市场对应用上线有严格的审核机制,如国外应用市场Google Play侧重应用有无广告、年龄分级制度;而国内应用市场侧重软件著作权、项目网站ICP备案、相关资质证明等。也就是说国内和国外应用...原创 2020-03-05 13:58:00 · 17136 阅读 · 7 评论 -
非华为手机Scrcpy无线投屏电脑多屏协同步骤(电脑无线连接投屏手机,设备,tcpip)
一、问题背景近日博主在研究如何把博主自己的小米手机像华为荣耀手机可以在电脑上多屏协同,毕竟作为程序员在使用电脑时一般会在手机、电脑间来回操作,如果可以直接在电脑上操作手机将会极其方便程序员的工作,而Scrcpy电脑无线连接手机的功能便解决了这个问题,但是Scrcpy涉及到了ADB(Android调试桥)的相关知识,因此博主想把整个流程做一个串接。二、Scrcpy电脑无线连接投屏手机1.下载并...原创 2020-02-22 12:33:00 · 20260 阅读 · 12 评论 -
编程乐园APP、编程学院APP的《用户协议与隐私政策》(Code Land and Code Land2's Privacy Policy)
安卓应用《编程乐园》及《编程学院》的《隐私政策及用户协议》本软件尊重并保护所有使用服务用户的个人隐私权。本软件为手机本地应用,不涉及任何网络功能、不申请任何网络权限。因此本软件不会将您的个人隐私信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本软件服务使用协议不可分割的一部分。1.适用范围在您使用...原创 2020-02-11 11:45:54 · 7155 阅读 · 0 评论 -
安卓或苹果IOS的APP应用如何取名字?好的名字技巧?
如何给APP取一个好的名字:(1)国内互联网公司的APP起名套路大全!:https://www.jianshu.com/p/f907376146e2(2)如何给一个App起名字?:www.woshipm.com/pd/377786.html(3)给App取名的“七要”和“三不要”:https://www.jianshu.com/p/09bcc640afde(4)如何给 App 取名字?:h...原创 2019-05-22 17:10:00 · 1313 阅读 · 0 评论 -
Android安卓中View的src与background区别分析
前沿背景background会根据ImageView组件给定的长宽进行不按照长宽比拉伸/压缩直到填满布局的layout_height和layout_width,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用,同时使用则src在前面,background在后,src会遮住background.1、android:background属性(1) 该...原创 2019-05-11 10:02:46 · 1351 阅读 · 0 评论 -
Android开发:最全面、最易懂的Android屏幕适配解决方案
Android开发:最全面、最易懂的Android屏幕适配解决方案:https://blog.csdn.net/wangwangli6/article/details/63258270转载 2019-05-11 09:58:54 · 281 阅读 · 0 评论 -
Android安卓中最棒的屏幕适配AndroidScreenAdaptation
AndroidScreenAdaptation本库特点完全不用改变自己的布局编写习惯,你原先是怎么写布局,就怎么写布局.不用去继承适配类,不用在最外层包裹适配布局,不用新建茫茫多的分辨率适配文件夹,不要求强制使用px为单位,可以实时预览布局,全面屏或带虚拟按键手机适配也没问题.效果展示快速开始1. 添加依赖implementation 'me.yatoooon:screenadap...转载 2019-05-11 09:57:30 · 2551 阅读 · 0 评论 -
Android安卓中多个Dependencies依赖引用了相同的“包”Multiple dex files define错误解决方案
Multiple dex files define (重复引用)原因:在自己的项目中引用了某个“包”,而被你作为library的项目也引用了同一个“包”,引起编译错误。“包”是指类库里面出现了相同类名,不仅局限于jar包。android进行dex时会对字节码文件进行优化合并, 如果两个class完全一致, 合并以后就是一个。 但是如果两个类的类名一致但内部确有细微差别, 那么就不能合并。背景:...原创 2019-05-11 09:47:51 · 1802 阅读 · 0 评论 -
Android安卓的mediaPlayer的release使用注意事项
mediaPlayer在当前活动使用,活动pause,destroy一定要release,否则系统资源不够mediaPlayer2.release(); 后一定要接上 mediaPlayer2=null;判断mediaPlayer是否release用if(mediaPlayer2!=null)MediaPlayer 会消耗宝贵的系统资源。因此,你应该经常采取额外的预防措施来确保及时把不需要...原创 2019-05-11 09:44:30 · 3958 阅读 · 0 评论 -
android安卓中设置Button按钮和ImageView图片的透明度
当我们的实心不透明按钮与后面图层中重要元素冲突时,遮挡重要元素对用户是很不友好的,所以我们要设置最高图层中透明度不透明,对用户操视觉体验很不友好半透明,方便用户看到重要元素在xml文件中设置:只需要设置alpha属性为0.5(0-1之间设置) <span style="color:#330033;"><ImageView android:lay...原创 2019-05-10 21:33:46 · 1801 阅读 · 0 评论 -
Android安卓中重构button或textview
自定义一个CustomTextView类 继承自TextView 在构造函数内修改字体用AS的全局替换功能,把import android.widget.TextView;替换成自定义import xxx.xxx.CustomTextView;原创 2019-05-10 21:31:37 · 323 阅读 · 0 评论 -
android安卓的values的style和theme区别讲解和实际应用
样式(Style)样式是指为 View 或窗口指定外观和格式的属性集合。样式可以指定高度、填充、字体颜色、字号、背景色等许多属性。定义样式要创建一组样式,请在您的项目的 res/values/ 目录中保存一个 XML 文件。 可任意指定该 XML 文件的名称,但它必须使用 .xml 扩展名,并且必须保存在 res/values/ 文件夹内, 该 XML 文件的根节点必须resources。(...原创 2019-05-10 21:30:47 · 1594 阅读 · 0 评论 -
Android安卓中Autosizing的TextView自动调整文字大小autoSizeTextType
Android 8.0 已经发布了有一阵子了,如果你有在关注它,你应该会知道它新增了一个对于 TextView 字体大小变动的新特性:Autosizing。本身这个新特性,如果只是在 Android 8.0 才有效,对于开发者而言,就显得有点鸡肋了,可能还需要一段时间才能普及使用。不过呢,在 Android Support v26 之上,也对 Autosizeing 提供了兼容支持,最低可以支持...转载 2019-05-10 21:27:46 · 4007 阅读 · 0 评论 -
Android安卓APP应用中代码实现主题换肤无缝切换
今天再给大家带来一篇干货。 Android的主题换肤 ,可插件化提供皮肤包,无需Activity的重启直接实现无缝切换,可高仿网易云音乐的主题换肤。这个链接是本次的Demo打包出来的样本SkinChangeDemo,可以去下载下来先试试效果,皮肤文件需放到存储卡的根目录下。关于Android的主题换肤都是个老生常谈的问题了。网上给出的方案也是层出不穷,最近我也是很想去了解这方面的知识,所以我...转载 2019-05-10 21:16:47 · 1866 阅读 · 0 评论 -
Android安卓签名打包原理,步骤详细讲解(debug,release区别.V1,V2区别)
所有的Android应用程序都要求开发人员用一个证书进行数字签名,Android系统不会安装没有进行签名的应用程序。在应用程序开发期间,由于是以Debug调试模式编译的,因此IDE(ADT)根据会自动用默认的密钥和证书来进行签名,而以Release发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名。我们使用Android Studio 运行我们的app,无非两种模式:debu...转载 2019-05-09 10:38:42 · 3450 阅读 · 0 评论 -
Android安卓或Java项目中的unreachable statement异常解释和解决方案
java编译器把unreachable statement标记为运行时错误,一个unreachable statement就是编译器决定永远不会执行它。下面的几种情况会出现 unreachable statement:(1)在reutrn语句后写语句。(2)在throw语句后写语句。(3)break、continue语句之后定义语句。(4)“\u10100”//合法,相当于‘\u101...原创 2019-05-09 10:19:56 · 1068 阅读 · 0 评论 -
Android自定义点击带声音的控件TextViewButtonListView
android控件在setonclick方法时,在点击时,就会触发performClick()方法,我们可以在自定义控件实现此方法,调用一个发声音的方法,即可以实现点击控件发出声音。自定义控件这里只写一个Imageview自定义,其他的所有控件几乎都是一样,实现performClick()即可。public class MyImageView extends ImageView { ...转载 2019-05-09 10:18:23 · 485 阅读 · 0 评论 -
Android安卓的File文件存放路径,存储访问目录全面讲解
getExternalStorageDirectory()和getExternalFilesDir()的区别:https://blog.csdn.net/d_o_n_g2/article/details/78027112Android存储路径你了解多少:https://www.jianshu.com/p/2de0113b3164Android存储访问及目录:https://www.cnb...原创 2019-05-09 10:16:10 · 5079 阅读 · 0 评论 -
Android安卓中高效率替换整个APP应用字体——全局字体Fonts in XML
Android O推出了一项新的功能「Fonts in XML」,借助这项功能,我们能够像使用其他资源文件一样使用字体,比较方便地实现App全局字体的替换。为了能够在API 14或者以上的设备上使用Fonts in XML特性,我们需要使用到Support Library 26。更多的内容可以参考「使用Support Library」小节。在Android Studio中按照如下步骤将字体作为...转载 2019-05-09 10:14:35 · 5431 阅读 · 0 评论 -
Android安卓的APP应用安装后该应用所有相关文件路径
一. Android应用安装后该应用所有相关文件路径有4种情况:system/app 系统自带的应用程序,无法删除。root后可以删除,注意可能造成系统崩溃,不过有的垃圾捆绑软件只能这么删除了data/app 用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录。data/data 存放应用程序的数据,如SharedPreference偏好设置数据,Litpal本地数据库。da...原创 2019-05-09 10:02:46 · 9643 阅读 · 2 评论 -
Android安卓项目编译运行报错Error:Can't process attribute androidfillColor=
报错消息提示:Can’t process attribute android:fillColor="@color/base_color_text_grey": references to other resources are not supported by build-time PNG generation. See http://developer.android.com/tools/h...原创 2019-05-08 12:00:53 · 461 阅读 · 0 评论 -
Androidan安卓控件GridView获取任意子View
Android GridView获取子View,然后进行操作。看了一些资料和别人写的,可还是获取不到,要不就是没有效果,最后自己调试出来了。之前看过一篇文章,说了这个问题,myGridView.getSelectedView();等获取的都是null的,然后发现需要myGridView.getAdapter().getView(i,null,null);这样可以获取到View,我测试是可以...原创 2019-05-08 11:59:03 · 2409 阅读 · 7 评论 -
根据Android项目文件夹的内容与结构确定项目是Android Studio、Intelligence Idea、Eclipse中的哪一个项目
原创 2019-05-08 11:55:53 · 352 阅读 · 0 评论 -
Android安卓中EditText不可换行或者软键盘补课换行-设置方案
一个入门级的Android问题:如何让EditText只显示一行,且无法使用软键盘的回车键换行?除了已经过时的singleLines属性,现在还有maxLines和Lines属性可以设置。然而你会发现,即使同时设置了maxLines=”1”和lines=”1”,你的EditText依然是可以换行的。其实很简单,只需要加上一条属性:android:inputType="text"这时你设...原创 2019-05-08 11:54:15 · 1013 阅读 · 4 评论 -
Android安卓中用Java代码触发一个按钮的点击事件
Android安卓中用Java代码触发一个按钮的点击事件button.performClick();原创 2019-05-08 11:52:36 · 3734 阅读 · 0 评论 -
Android安卓动态渐变颜色,渐变动画,让渐变动起来
前言最近一直想写个app,可是不知道想些啥,今天给大家分享一下 渐变动起来的效果因为gif图比较大,所有不够清晰,这里给大家讲解一下文章最后的最终效果图最初的渐变色是这个颜色,由紫色变为蓝色,我们暂时分为这两块颜色,右边紫色会不断变浅变成粉红、橙黄、深蓝最后变回来。左边深蓝也会不断加深变成深蓝,深紫,深褐然后变回给人的错觉就是右边移动到左边,移动的过程不断变色其实我们仔细分析一下...转载 2019-05-08 11:50:40 · 2860 阅读 · 1 评论 -
专业安卓Android的SplashActivity的详解介绍和正确使用说明
Android启动页面的正确打开方式:https://blog.csdn.net/shiguiyou/article/details/50255929android studio for android learning (八)开机启动界面splashActivity:https://blog.csdn.net/yywan1314520/article/details/51622154...原创 2019-05-07 09:09:57 · 2367 阅读 · 0 评论 -
Android安卓应用版本命名规范
Android 设置APP版本号(1) 在清单文件AndroidManifest.xml中manifest 标签节点中加入android:versionCode和android:versionName的值即可设置应用的版本号。如以下代码:(2) build.gradle(Module:app)配置文件可以同样设置版本号(注意:推荐使用build.gradle设置版本号,因为一个方便在bui...原创 2019-05-07 09:08:58 · 4688 阅读 · 0 评论 -
Android代码混淆集合
5分钟搞定android混淆:https://www.jianshu.com/p/f3455ecaa56eAndroid代码混淆只需简单三步:https://blog.csdn.net/ccj659/article/details/51798687Android Studio(十一):代码混淆及打包apk:https://blog.csdn.net/zuiwuyuan/article/det...原创 2019-05-07 09:07:26 · 266 阅读 · 0 评论 -
Android代码混淆-第三方库忽略混淆解决方案
我们做的项目有时候导入了大量的第三方库,在做代码混淆时就不太清楚他们的混淆代码了,这个时候就直接看这些第三方包的报名并忽略混淆注意:一定要忽略所有的第三方库,只忽略一部分仍然导致APP无法正常运行Android第三方类库中的jar包不被混淆:https://www.jianshu.com/p/fd9f88fadb05假如你的项目中有这样一个image类库, 打开build.gradle文件,...原创 2019-05-07 09:06:40 · 1175 阅读 · 0 评论