Kotlin学习之-5.2 属性和成员
Kotlin学习之-5.2 属性和成员 定义属性 Kotlin中,类可以有属性。它们既可以用var关键字定义成变量,也可以用val关键字定义成只读量。 class Address { var name: String = ... var street: String = ... var city: String = ... var state: String? = ... var zip:...
View ArticleKotlin学习记录(五)—— 条件表达式的使用
接上篇: Kotlin学习记录(四)—— 常用集合的使用 if/else: 直接上代码吧: var x: Int = 666 var y:Int if(x>0){ y=x }else{ y=0 } 是的,和Java没啥区别!真的没啥区别吗?那这样呢: val z=if(x>0) x else 0 觉得还不够简单?那这样呢: val a= x ?: x ?: 0...
View ArticleFlutter实战一Flutter聊天应用(七)
使用Firebase控制台的分析(Analytics)功能可以帮助我们了解用户是如何使用Flutter应用程序。我们将启用捕获预定义的事件,调整应用程序以收集登录事件和发送消息的指标。数据捕获后,我们将通过Firebase控制台在仪表板中查看。 要使用Firebase Analytics收集用户的数据,我们需要firebase_analytics插件。在main.dart文件中,确保导入相应的包。...
View ArticleTiny4412 Android5.0 定制键值相关的文件
在4412中,开发板上只有四个按键,我们可以根据产品的需求自定义按键的功能。 在KeyEvent.java这个文件中,可以通过发出按键的事件,上报给上层。让上层app或者服务去接收处理。比如,我们可以看到这样的代码: 注释写得非常清楚,按下按键后,可以发出键值,按下的时间等等,也可以通过Android广播的形式去发送这些事件。 /** * Create a new key event. * *...
View ArticleiOS之Runtime原理解读
Runtime简介 做过Android开发的同学都知道,早期的Android系统采用的是Dalvik机制,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,大大的降低了app的运行效率。在Android 5.0系统之后,系统采用了ART机制,应用在第一次安装的时候,字节码就会预先编译成机器码,以后每次运行速度大大的提高了。...
View Article针对 CoordinatorLayout 及 Behavior 的一次细节较真
我认真不是为了输赢,我就是认真。– 罗永浩 我一直对 Material Design 很感兴趣,每次在官网上阅读它的相关文档时,我总会有更进一步的体会。当然,Material Design 并不是仅仅针对 Android 而言的,它其实是一套普遍性的设计规范。而对于 Android 开发人员而言,我们涉及的往往是它的实现。也就是一个个个性鲜明的类。比如 RecyclerView...
View ArticleKotlin 从学习到 Android 第十章 扩展
与 C# 、Gosu 类似,Kotlin 也可以为一个类扩展一个新的功能,而不需要从类继承或使用任何类型的设计模式,如装饰( Decorator )。这是通过一种被称为扩展的特殊声明完成的。Kotlin 支持扩展函数和扩展属性。 扩展函数 声明扩展函数时,我们需要在函数名前加上一个接收类型,也就是被扩展的类型。例如:下面的代码为 MutableList 添加一个 swap 的新函数。 fun...
View ArticleTiny4412 Android5.0 定制media codecs相关的格式
tiny4412 4412 Android 5.0系统上,支持以下的media格式,文件位于: device/friendly-arm/tiny4412/media_codecs.xml打开后我们可以看到这个xml包含相关的音视频编解码支持的格式:<?xml version="1.0" encoding="utf-8" ?> <!-- Copyright (C) 2012 The...
View Article【我的Android进阶之旅】Android 混淆文件资源分类整理
之前将所有的混淆都配置在一个 proguard-rules.pro 这个Android Studio新建项目时自动生成的文件里面,而随着项目功能迭代越来越多,代码量越来越多,引用的第二方库、第三方库都越来越多,导致proguard-rules.pro 越来越臃肿,而且随着开发人员增多导致proguard-rules.pro 文件里面的配置越来越混乱。...
View ArticleAndroid内存优化(二)DVM和ART的GC日志分析
相关文章 Android内存优化系列 Java虚拟机系列 前言 在Java虚拟机(三)垃圾标记算法与Java对象的生命周期这篇文章中,提到了Java虚拟机的GC日志。DVM和ART的GC日志与Java虚拟机的日志有较大的区别,这篇文章就对DVM和ART的GC日志进行分析。 1.DVM的GC日志 在 DVM 中,每次垃圾收集都会将GC日志打印到 logcat 中,具体的格式为:...
View ArticleReactNative开发——滑动组件
ReactNative开发——滑动组件 环境 window android react-native 0.45 ScrollView 介绍 ScrollView是一个可以滑动的组件,它内部可以是一个高度不受控制的View,但它自身必须要有个固定的高度。这里如果我们不给直接他设置高度,它的上层空间有固定高度的话也是可以的。 <ScrollView> VS...
View ArticleH.264标准(一)mp4封装格式详解
MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file...
View ArticleMVVM与Controller瘦身实践
前言 MVC是一个做iOS开发都知道的设计模式,也是Apple官方推荐的设计模式。实际上,Cocoa Touch就是按照MVC来设计的。 这里,我们先不讲MVC是什么,我们先来谈谈软件设计的一些原则或者说理念。在开发App的时候,我们的基本目标有以下几点: 可靠性 - App的功能能够正常使用 健壮性 - 在用户非正常使用的时候,app也能够正常反应,不要崩溃 效率性 -...
View Article带你解锁蓝牙skill(二)
本文已授权微信公众号fanfan程序媛独家发布 紧接着带你解锁蓝牙skill(一)继续分析 转载请注明出处,本文出自fanfan 的带你解锁蓝牙skill(二) 3>,Pbap配置 Pbap:Phone Book Access Profile是说共享联系人协议,具体定义可参考上一篇。 其实说白了就是一个手机可以从另一个手机中导入联系人信息。 其中包括两个角色...
View ArticleHBuilder webApp开发(十六)定位geolocation
HBuilder的geolocation定位模块其实接口很少,通常我们使用定位模块即可。 var posi = null; mui.plusReady(function() { posi = plus.geolocation.getCurrentPosition( function ( p ) { console.log( "Geolocation\nLatitude:" +...
View ArticleHBuilder webApp开发(十七)百度地图URI API的使用
年前的使用公司做了一个物流的app,目的是方便送货师傅的使用。在做的时候,我就集成了百度地图URI API。这个使用比较简单,这里我使用的地址解析baidumap://map/geocoder,这个接口。但是在使用时要区分iOS和安卓系统,就这唯一一个注意点,参数也就是一个,前提是手机安装的有百地图app。...
View ArticleiOS 与 Android 系统十年之战,究竟谁是赢家?
2007 年,功能机巨头林立的时代,苹果在 Macworld 大会上公布了 iOS 系统。同一年,Google 与多家制造商、开发商、电信运营商和芯片制造商联合创立开放手持设备联盟(OHA)共同研发改良 Android 系统。 这是移动互联网浪潮的起始。 2014...
View ArticleAndroid 神兵利器Dagger2使用详解(二)Module&Component源码分析
前言: 在我的上一篇文章 Android 神兵利器Dagger2使用详解(一)基础使用中,我们通过Dagger2依赖注入的两种方式获取Student对象,并简单了解了各个组件的作用和互相的联系: @Inject : 注入,被注解的构造方法会自动编译生成一个Factory工厂类提供该类对象。 @Component: 注入器,类似快递员,作用是将产生的对象注入到需要对象的容器中,供容器使用。...
View Article