CDA数据分析师 出品 编译:Mika 如果我们把人类文明想象成汽车的话,那么软件开发行业就相当于汽车的引擎,编程语言就像引擎的燃料。 2021年很快就要结束了。如今,软件开发行业正以前所未有的速度在全球蓬勃发展。在不久的将来,该行业在全球收入预计将超过3000亿美元。 在越来越多
Kotlin中的if语句和Java中的if语句几乎没有任何区别 如下函数是返回两个参数中的较大值 fun largerNumber(num1: Int, num2: Int): Int{ var value = 0 if(num1 num2){ value = num1 }else { value = num2 } return value } 我们使用了var关键字来声明value这个变
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); init(); setAction(); } /** 初始化View */ private void init() { creat
package com.example.jetpackcompose import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material.* import androidx.compose.runtime.Composable import androidx.compose.run
我们可以根据业务模块进行查分,把不同的业务模块放到不同的moudle中,实现各个业务之间的结构,他们又共同依赖底层公共库,这就是模块化的概念,但是当多个模块中涉及到相同功能时代码的耦合又会增加,例如有两个模块都需要视频播放的功能,把视频播放放到两个组件中就会出现代码重复的问
Fragment 自定义注解 注解的使用 Retrofit中的注解原理项目实战 自定义注解实现 ButterKnife项目架构实战 并发编程篇 线程共享和协作 线程深入理解 操作CAS 并发原理和大厂相关面试题 Android AsyncTask原理解析 数据传
这只是描述了一个retrofit的简单请求方式,实际项目中基本上都会封装之后再使用,也为了提高代码的可读性,降低各部分的耦合性, 通俗点来说,只有各司其职才能把工作干好嘛,接下来咱们就围绕着各司其职来一个一个实现 协程实现 接下来把上面的请求换成协程的方式来实现 1.创建Retrofi
_dirList() async { Directory documentsDirectory = await getApplicationDocumentsDirectory(); String path = ‘ d o c u m
<gradient android:endColor="#888888" android:startColor="#888888" /> green_track.xml:打开状态下,绿色的底图。 <?xml version="1.0" encoding="utf-8"?> <gradient android:endColor="#33da33" android:s
Android性能优化、内存优化 性能优化:可以从界面、apk瘦身、混淆说起,dex分包处理,插件化动态加载模块,开屏冷启动说起 界面优化:多可以使用include、merge、ViewStub、约束布局来做起,include可以提取公共的布局,merge可以减少布局层次、ViewStub是使用的时候才去创建View,减少空
Kotlin 是一种现代编程语言,专注于简洁、清晰和代码安全。 Google 于 2017 年通过在 Android Studio 中添加支持来正式采用 Kotlin,此后在 Google I/O 2019 上宣布其为 Android 开发人员的首选语言。 也许您的 Android 应用程序团队已将 Kotlin 代码逐步添加到您的项目中或选择开
一、Kotlin的内容 1.扩展函数和扩展属性 2.不可空类型和可空类型 使用Kotlin编程比Java更加安全,至少在空指针问题上写起来代码来会更加“开心”。Kotlin中引入了不可空类型与可空类型来明确声明一个变量是否可能为null,同时在编译期通过类型来明确声明一个变量是否可能为null,同
Kotlin中有两种延迟初始化的方式。一种是lateinit var,一种是by lazy。 一、lateinit的使用 按Java的写法,此时即代表datas默认为null,但是因为Kotlin的非空机制,这里给出了两种选择,要不给一个初始值,要不增加lateInit修饰 则可以这么写: 表示初始即为null var datas:Ar
接着测试步骤:打开设置更换系统语言 -> 切换到当前app所在的任务 再看日志 18:03:59.622 : mainViewModel: nameListResult: [张三, 李四] 18:03:59.622 : com.yqy.myapplication.MainActivity@49a4455 mainViewModel: com.yqy.myapplication.MainViewModel@29c0057 mainViewM
今天打包一个项目,突然报个错,让人摸不到问题所在。这个项目是java开发的。 /Users/xxx/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.20/9be77b243a362b745e365f286627b8724337009c /kotlin-stdlib-1.4.20.jar: Runtime JAR file has version 1.4
几种 Serverless 服务端 1. 腾讯cloudBase 小程序首选还支持低代码,内置CMS提供一下通用的运营模板支持 flutter 2. 百度Serveless 3. 阿里ServerLess 4. LeanCloud 建模的的文档写的非常好,可以理解模型设计 5. Bomb Baas 支持kotlin 语言,文档特别好,API 设计非常舒服,语义性很
前言 2021年已然接近尾声,虽然没有2020年那么跌宕起伏,但很多行业仍旧收到了来自各方面的冲击(K12培训:你直接报我身份证号得了呗)。对于Android开发者们,年底也是听到、看到了很多不太利好的消息,很多大厂也是频频冲上热搜,这也着实让大家对自己的前途感到迷茫。 其实近些年来,很多人
协程基础 协程是一个可挂起的计算实例。和线程的概念相似,协程可以让一段代码块与另一端代码块并发执行。协程不绑定到一个特定线程上,有可能一个协程在一个线程中挂起,然后在另一个线程中恢复。 协程可以被想象成轻量级的线程,但是一些重要的区别决定了协程在日常使用中与线程的不同
1,根目录下build.gradle: classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" 2.app下build.gradle //写法一 plugins { id 'kotlin-android'
点击免费领取题目+解析PDF Service Service是否在main thread中执行, service里面是否能执行耗时的操作?(★★) Activity怎么和Service绑定,怎么在Activity中启动自己对应的Service? 请描述一下Service的生命周期(★★★) 什么是IntentService?有何优点?(★★★) BroadcastReceive
1.4、说明 1.5、反馈 1.1、简史 ====== Java语言是一门通用的、面向对象的、支持并发的程序语言。它的语法与C和C++语言非常相似,但隐藏了C和C++中许多复杂、深奥及不安全的语言特性。Java平台最初用于解决基于网络的消费类设备上的软件开发问题,它在设计上就考虑到要支持部署
在使用并发编程时,利用多线程来提高任务的执行效率,但是每个线程在执行时,都有一些先决条件需要被满足。例如生产者消费者模式下,消费者线程能够执行的先决条件,就是生产者产生了一个待消费的数据。 那么如果线程要求的条件,不满足时,循环等待是一种方案,循环间隔一段时间,再重新尝试
Kotlin中的高阶函数 一、函数式编程概念 二、高阶函数 1.函数对变量进行赋值 2.函数作为参数 3.函数作为返回值 一、函数式编程概念 又称泛函编程,即比一般函数更加抽象的概念(学过泛函分析的应该都懂吧),将计算机运算视为数学上的函数运算,基础就是利用lambda表
<provider android:name=“android.support.v4.content.FileProvider” android:authorities=“com.chaochaowu.facedetect.provider” android:exported=“false” android:grantUriPermissions=“true”> <meta-data android:name=“android.support.FILE_PROVIDER_PATHS”
常见的模块化实现方式有两种 业务 Module 都放到同一个工程里。每个业务 Module 都是一个独立的工程。 如图: 模块的划分 模块可分为多种类型,一般分为:三方的基础 SDK (网络请求,地图导航,推送等);自己平台的通用功能(网络请求的能力封装、图片加载能力封装、权限设置、UI组件等);业务