而用户分析则指的是,App面向的用户的特征。比如用户群体主要是30岁左右的白领,那么这些用户普遍换手机的频率较高,基本上都能追着比较新的Android版本,那么minSdkVersion设置的比较高也问题不大;而如果用户群体面向50甚至60岁以上的中老年人,这些用户对换手机、升级系统不是很感冒,所以有必要把minSdkVersion设置的低一些。
记住,千万不要忘了设置minSdkVersion,如果你不设置,那么就变成了默认值:1,然后你使用的任何在Android 1.0之后才加入的特性,在1.0上运行就崩溃了。
An integer designating the API Level that the application targets. If
not set, the default value equals that given to minSdkVersion.
This attribute informs the system that you have tested against the
target version and the system should not enable any compatibility
behaviors to maintain your app’s forward-compatibility with the target
version. The application is still able to run on older versions (down
to minSdkVersion).
As Android evolves with each new version, some behaviors and even
appearances might change. However, if the API level of the platform is
higher than the version declared by your app’s targetSdkVersion, the
system may enable compatibility behaviors to ensure that your app
continues to work the way you expect. You can disable such
compatibility behaviors by specifying targetSdkVersion to match the
API level of the platform on which it’s running. For example, setting
this value to “11” or higher allows the system to apply a new default
theme (Holo) to your app when running on Android 3.0 or higher and
also disables screen compatibility mode when running on larger screens
(because support for API level 11 implicitly supports larger screens).
There are many compatibility behaviors that the system may enable
based on the value you set for this attribute. Several of these
behaviors are described by the corresponding platform versions in the
Build.VERSION_CODES reference.
To maintain your application along with each Android release, you
should increase the value of this attribute to match the latest API
level, then thoroughly test your application on the corresponding
platform version.
targetSdkVersion完全可以按照它的字面意思去理解:目标sdkVersion。如果没有设置,则默认值为minSdkVersion。当你设置了targetSdkVersion的时候,表示你已经充分测试过了你的App在该目标版本的运行情况,系统不应该启用任何兼容性行为来保持你的App与目标版本的向前兼容性。
如果系统的API级别高于应用的目标版本,则系统会启用兼容性行为来确保应用在更高版本系统上的运行。这一点相信做Android开发时间比较久的人都很理解了,只要你写的程序比较规矩,没有太多的官方推荐外的行为,那么一个老版本的应用放在几年后的Android新设备上依然能顺利运行,只不过相当多的开发者(尤其是国内的)并不是很遵守规范罢了。
再详细说说:
targetSdkVersion 是 Android 系统提供前向兼容的主要手段(即:新版本SDK手机兼容旧版本SDK工程)。这是什么意思呢?
举例:在 Android 4.4 (API 19)以后,AlarmManager 的 set()和 setRepeat()这两个 API 的行为发生了变化。
在 Android 4.4 以前,这两个 API 设置的都是精确的时间,系统能保证在 API 设置的时间点上唤醒 Alarm。
在Android 4.4,因为省电原因实现了 AlarmManager 的对齐唤醒,这两个 API 设置唤醒的时间,系统都对待成不精确的时间,系统只能保证在你设置的时间点之后某个时间唤醒。
虽然 API 没有任何变化,但是实际上 API 的行为却发生了变化,如果老的 APK 中使用了此 API,并且在应用中的行为非常依赖 AlarmManager 在精确的时间唤醒,例如闹钟应用。如果 Android 系统不能保证兼容,老的 APK 安装在新的系统上,就会出现问题。
Android 系统是怎么保证这种兼容性的呢?这时候 targetSdkVersion 就起作用了。APK 在调用系统 AlarmManager 的 set()或者 setRepeat()的时候,系统首先会查一下调用的 APK 的 targetSdkVersion 信息,如果小于 19,就还是按照老的行为,即精确设置唤醒时间,如果大于19了,就会崩溃,因为你没配置4.4的新功能
再简单的说:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
重要知识点
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。
高级进阶篇——高级UI,自定义View(部分展示)
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
- 面试题部分合集
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
758)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-lhLlYmpY-1712608997758)]