首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kotlin Vocabulary | 枚举和 R8 编译器

    我会讨论一些和 when 语句相关的潜在开销,以及 Android R8 编译器是如何优化您的应用并减少这些开销的。 编译器 首先,我们讲一讲 D8 和 R8。...如果您去看这段代码编译成的 Java 字节码 (您可以通过 Android Studio 的查看字节码功能直接看到 (Tools -> Kotlin -> Show Kotlin Bytecode),然后点击...自动生成的枚举映射 事实上,为了实现二进制兼容,我们不能简单地依靠枚举的序数值进行转换,因为这样的代码十分脆弱。...更多信息 更多 R8 相关信息,请查看以下资源: 官方文档 | D8 developer.android.google.cn/studio/comm… 官方文档 | 缩减、混淆、优化您的应用 developer.android.google.cn.../studio/buil… Jake Wharton 的博客,详细介绍了 D8 和 R8 的工作原理,并为各种功能提供了示例,以及如何直接运行编译器、如何获得反编译的结果等 jakewharton.com

    1K50

    Flutter入门第一讲:环境搭建(mac os为例)

    《Flutter零基础入门》,从无到有构建Android、iOS双平台APP,更新中… 今天开始,我重新捡起之前中断的Flutter学习。在新的电脑上搭建新的环境,记录如下,希望可以帮助到你!...去Flutter官网下载最新可用的安装包,官网地址:https://flutter.io/sdk-archive/#macos 解压sdk,将sdk目录放在合适的位置 3.设置环境变量。...Android Studio (version 3.2) ✗ Flutter plugin not installed; this adds Flutter specific functionality...(Xcode 10.1) [✓] Android Studio (version 3.2) [✓] Connected device (2 available) !...以上就是环境搭建的整个过程,下一篇给大家讲如何用flutter运行最简单的应用“hello world”,敬请期待! 祝你成功!

    1.7K20

    重构方法与实践笔记

    “重写”与“重构”之后,下面专注地讲一下重构 1.1 重构的概念和背景 EPC 破窗理论与懒惰:在没有刻意优化下,代码腐烂是必然的 80%在别人的代码上进行修改 1.2 重构的目的:使软件结构更加合理...函数重构 2.1 工具 ApprovalTest + Coverage = 无脑单测 CombinationAppovals.verifyAllCombinations Android Studio IDE...覆盖率设置 设置Tracing 格式的可以查看单测命中率 - Preference -> Coverage -> Replace active suites with the new one -...- 难以维护 - 容易出现bug - 破窗效应 优秀函数的原则: 函数一般写10行 超过20行就考虑重构 第一条规则是短小 第二条规则还是短小 如何处理条件语句 - 函数提取:即按照逻辑拆分子函数...- 分解表达式 - 以多态处理堆叠的条件表达式(如switch) - 状态模式 - 策略模式 - 将条件表达式转换为查找表,使用注解完成映射 2.4 进阶优化 组合函数(Composed Method

    92500

    android开关按钮

    后来,查看开发文档发现,android也有了自己的原生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Switch控件,以及使用起来十分简单的ToggleButton,可是它们只是带有切换效果...所以,要想看如何实现滑动切换的效果,必须了解这些控件的实现方式。下面,让我们查看下android开发文档,看看这些是如何实现使用的。...下面让我们来看看如何实现这个效果把: 一.使用ToggleButton控件实现: 使用ToggleButton控件十分方便,你可以看作他为一个CheckBox,只用设置它的button、background...mSwitchOn);   }   /** 设置选中的状态(选中:true   非选中: false) */ public void setChecked(boolean checked) {...还有就是要设置接口监听状态变化: /**   * 设置 switch 状态监听   * */ public void setOnChangeListener(OnSwitchChangedListener

    4K80

    github万星app测试开源项目DoKit(三行代码完成集成)

    "io.github.didi.dokit:dokitx:3.5.0" 同时还要在android同级加入一个闭包进行通用的设置 dokitExt { comm { gpsSwitch...在项目的build.gradle依赖中加入 classpath 'io.github.didi.dokit:dokitx-plugin:3.5.0' 最后一步在gradle.properties设置...gradle相关选项 DOKIT_PLUGIN_SWITCH=true DOKIT_THIRD_LIB_SWITCH=true DOKIT_LOG_SWITCH=true DOKIT_WEBVIEW_CLASS_NAME...=4 DOKIT_METHOD_STRATEGY=0 最后gradle编译一下,部署就完成了 三、测试效果 这里的采用的测试环境时Android Studio + android 10 系统进行测试的...,避免了重复造轮子的过程,又集成了一个如此优秀的开源项目,目前github上以及1.8w star ,可以说是备受开发者青睐,目前还在不断地更新中,希望这个国产的开源项目会越做越好

    65220

    ToggleButton和Switch使用大全

    一、ToggleButton ToggleButton(开关按钮)是Android系统中比较简单的一个组件,是一个具有选中和未选中双状态的按钮,并且需要为不同的状态设置不同的显示文本。...XML属性 相关方法 说明 android:checked setChecked(boolean) 设置该按钮是否被选中 android:textOff 设置当该按钮的状态关闭时显示的文本 android...:textOn 设置当该按钮的状态打开时显示的文本 接下来通过一个简单的示例程序来学习ToggleButton的使用用法。...二、Switch Switch是一个可以在两种状态切换之间切换的开关控件。用户可以拖动来选择,也可以像选择复选框一样点击切换Switch的状态。...setSwitchTextAppearance(Context, int) 设置该开关图标上的文本样式 android:textOff setTextOff(CharSequence) 设置该开关的状态关闭时显示的文本

    2.6K50

    SwitchButton 开关按钮 的多种实现方式

    后来,查看开发文档发现,android也有了自己的原生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Switch控件,以及使用起来十分简单的ToggleButton,可是它们只是带有切换效果...所以,要想看如何实现滑动切换的效果,必须了解这些控件的实现方式。下面,让我们查看下android开发文档,看看这些是如何实现使用的。...下面让我们来看看如何实现这个效果把: 一.使用ToggleButton控件实现: 使用ToggleButton控件十分方便,你可以看作他为一个CheckBox,只用设置它的button、background...mSwitchOn);   }   /** 设置选中的状态(选中:true   非选中: false) */ public void setChecked(boolean checked) {...还有就是要设置接口监听状态变化: /**   * 设置 switch 状态监听   * */ public void setOnChangeListener(OnSwitchChangedListener

    3.2K70

    Android4.42-Settings源码分析之蓝牙模块Bluetooth(上)

    actionBarSwitch); //告知options menu ,fragment要添加菜单项 setHasOptionsMenu(true); } 那么开关控件的初始状态是如何获取的呢...进入到BluetoothEnabler.java类中可以发现,在该类的resume方法中对该switch有一个设置 其中handleStateChanged方法就是传入当前蓝牙的状态,并对开关的状态进行设置...的状态,当switch的状态发生改变时需要更新本地的蓝牙状态。...这就涉及到了,注册广播监听本地蓝牙状态,为switch注册监听器监听switch的更改,以及对switch状态进行设置的方法。...switch进行设置  handleStateChanged(state); } }; iii>,为switch设置监听事件,当switch发生改变时,需要对系统的蓝牙状态进行行改变

    1.6K20

    自定义View之Switch

    今天我们来聊一下自定义Switch控件,我们先看一看Switch的相关属性: 1.Switch相关属性 android:splitTrack:是否设置间隙让滑块与底部图片分隔开来 android:switchMinWidth...:设置开关的最小宽度 android:switchPadding:设置滑块内文字的间隔 android:switchTextAppearance:设置开关的文字外观 android:textOff:按钮没有被选中时显示的文字...android:textOn:按钮被选中时显示的文字 android:showText:设置on/off的时候是否显示文字,如果不显示则textOn,textOff不起作用 android:textStyle...image.png 3.Switch的自定义 自定义Switch的步骤如下: 定义Switch的开关按钮状态 定义一下Switch滑动轨道的状 自定义文字颜色 应用效果展示 3.1定义Switch的开关按钮状态...image.png 3.2 Switch滑动轨道的状态 定义track这个属性值,它也有开启和关闭两种状态 打开状态的track:switch_custom_track_on

    2.1K30

    Android Studio详细安装流程和配置、主题

    我们敲代码是要有一个舒适的视觉环境的。 其实AS提供了一个非常方便的功能帮助我们导入或者导出设置。因此我们在安装一个新的 Android Studio 的时候通常会导入一个之前的设置。...这里呢我们就不教大家一个一个配置对应颜色了,这里教大家如何导入第三方主题。...这里我们实现一个AS不自带的方法,就是我们经常使用的switch用法作为例子。...按照图上的流程走即可,我说一下switch()里的参数 在Custom的自定义组下,创建一个swi的自定义活动模板 提示关键字设置为 swi ,描述为 switch的选择语句 然后设置四个参数CONTAINER...这个功能是Android studio自带的功能,但是需要你先手动设置一下:全屏代码的快捷键(默认情况下这个功能是没有快捷键的,即是关闭的): 这里我设置的是Ctrl+分号,大家在设置的时候也可以根据自己的喜好设置

    2.6K60

    Android进阶之绘制-自定义View完全掌握(四)

    } private void initView() { paint = new Paint(); paint.setAntiAlias(true);//设置抗锯齿...这样一个静态的开关就被绘制上去了,现在我们要让开关通过点击能改变状态。 我们先来分析一下,现在的状态是处于关闭的状态,如何让它处于开启状态?...我们在绘制第二张图的时候是距离左边距为0,而此时我们已经计算出了开启状态需要距离左边的边距,所以,我们只需这样修改 canvas.drawBitmap(slidingBitmap,slidLeftMax...这样就使得开关处于开启的状态了。既然如此,那我们就可以通过动态地改变左边距的值从而间接地控制开关状态。 我们重新修改MyToggleButton类的代码。...现在我们已经无法将开关滑出控件外,但是,不知道你们有没有发现,它可以滑动到一个比较尴尬的地方,就是既不是开启状态,也不是关闭状态,而是处于两者中间,那这种情况同样也是不被允许的,所以,我们现在来解决一下这个问题

    53620

    一种高端的APP代码保护方案

    前驱模块主要是进行基本块的分发,后继模块的分发通过改变switch变量来实现。...这个主要原理就是在当前基本块之前添加一个新的基本块用来修改函数调用图,这个新的基本块包含一个不透明的谓词,通过有条件地跳转到原来的基本块。原始的基本块也会被克隆并填充随机的垃圾指令。...OLLVM集成 通过前面的编译后生成的bin和lib文件夹,集成到NDK中,并通过android studio编译器进行so代码保护的应用。...这样强度也有了,对应用的性能影响方面也相对较小。 上图中Android.mk设置的保护方式属于全局的保护,设置后整个so就都会基于设置的保护。...对于代码的安全性思考,不过在安全攻防对抗的过程中防御一直属于被动状态的也是相对滞后的。安全防护也是随着对抗去不断去提高变强。

    1.6K20

    Android4.4.2源码分析之WiFi模块(一)

    已经写了几篇关于Android源码的,源码代码量太大,所以如果想分析某个模块可能不知如何下手,说一下思路 1,分析源码英文阅读能力要够,想要分析某个模块一般找模块对应的英文,就是模块 2,找到之后首先查看清单配置文件...值被设置为false,所以不按优先级排序5>,接下来就是添加WiFi开关,至于通过代码在导航栏actionbar添加switch的代码类似蓝牙,在此不再赘述,可以看到,蓝牙开关switch传入了WifiEnabler...可以看到,该类就做了两件事,第一注册广播监听WiFi的变化并随之改变switch的状态,第二为switch添加点击监听事件 广播所监听的事件有 //当WiFi状态发生改变时会发送该广播 mIntentFilter...switch的状态,WiFi的状态存在于WifiManager.EXTRA_WIFI_STATE  handleWifiStateChanged(intent.getIntExtra...switch进行设置时赋值,起开关保护的作用,保证当点击switch的时候先将switch状态设置成功再进入点击事件方法 private void setSwitchChecked(boolean checked

    87510

    在macOS 10.12 上编译 Android 5.1

    本文介绍下如何在在macOS 10.12 上编译 Android 5.1源码,导入源码到Android Studio中,把系统烧录到Nexus6手机中。...-switch /Developer/Xcode.app $ xcode-select --install $ sudo xcode-select -switch /Applications/Xcode.app...---- 编译 设置文件描述符限制 在macOS中,默认限制的同时打开的文件数量很少,不能满足编译过程中的高并发需要,因此需要在shell中运行命令: $ ulimit -S -n 1024 环境设置...如果lunch的是aosp_arm-eng类型,就可以用$ emulator命令刷到模拟器了。 ---- 源码导入到Android Studio中 为了方便查看源码,可以把代码导入到AS中。...如果要支持跳转的话,还需要做些配置,可以看这篇教程:Import AOSP into Android Studio ---- 刷机 Nexus6手机在打开USB调试,连接电脑后允许调试这台手机,并且在设置中打开

    1.9K40
    领券