5 xlh1191860939

尚未进行身份认证

一个android小菜鸟

等级
博文 65
排名 4w+

Flutter和Dart系列九:简单的网络请求

与其说是Flutter的网络请求,倒不如说是Dart的网络请求。实际上这块是对系列八第5点的一个复习,我们直接看代码: 在.yaml文件中添加http依赖,然后执行Packagesget dependencies:flutter:sdk:flutterhttp:^0.12.0+2 新建一个api.dart文件 import'package...

2019-07-15 20:45:19

grpc in Android

最近公司客户端同服务器的交互方式都换成了grpc,什么是grpc呢?我们在以后再去了解,此篇的目的就是带大家了解在android中如何去使用grpc.grpc-java的github地址:https://github.com/grpc/grpc-java。大家可以去浏览一下里面的文档说明,不用动手。 对于Android程序员,我们需要重点关注的是:https://grpc.io/docs...

2019-05-07 16:03:17

Flutter和Dart系列之八:路由

截至目前为止,我们的Widget都是在一个页面上实现的。对于一个App而言,不可能只有一个页面。那么在Flutter怎样实现页面间的跳转呢? 启动一个新的页面:Navigator.push(),类似Android中的startActivity classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildC...

2019-03-15 17:58:30

final关键字在Android和Java中使用总结

final作用于类上:表示该类不可被继承 某些类在设计的时候,可能出于安全的考虑,不希望被继承,例如String类。final类中的属性和方法可以是final或者非final,但是由于不能被继承,也就意味着final类中的方法都是final的,当然你也可以显式去指定。在《EffectiveJava》一书中,有句名言“designanddocumentforinheritance...

2019-03-14 13:35:06

Flutter和Dart系列七:Column和Row

对于线性的布局排列,Android中使用的是LinearLayout,至于是横向还是纵向,则是通过orientation属性来指定的,orientation=vertical表示纵向线性,orientation=horizontal表示横向线性。在Flutter中,将这两种线性布局分别用Column和Row来表示。 Column:orientation=vertical voidma...

2019-03-12 12:30:46

DiskLruCache的源码分析

如何拿到一个DiskLruCache的对象? 通过DiskLruCache的open方法,因为它的构造是私有的,所以你不是能够直接new的。open方法有四个参数: directory:磁盘缓存的路径 appVersion:app的版本号,这个地方看清况传入,如果你想要当app升级时,之前的缓存失效,那么这个地方你就可以传入当前app的版本号;否则的话,缓存在app升级时仍然保留,...

2019-03-11 14:49:21

基于《Android插件化开发指南》第5章对于"欺骗AMS"的思考

在我们初学Android阶段经常会遇到一个异常:Unabletofindexplicitactivityclassxxx;haveyoudeclaredthisactivityinyourAndroidManifest.xml?异常信息提示的很清楚,原来我们在start一个新的Activity时,忘记在AndroidManifest.xm...

2019-03-07 13:54:46

基于《Android插件化开发指南》第4章对于ActivityManager hook的思考

最近在读包建强老师的《Android插件化开发指南》一书,在读到第4章对于ActivityManagerhook时,有点小启发。先看hook的代码(基于Android9.0源码,兼容Android7.0之前的版本代码需改动):publicclassHookHelper{publicstaticvoidhookActivityManager(){...

2019-03-04 16:35:51

Flutter和Dart系列五:类和对象

Dart是一门面向对象的语言。和Java一样,它有个超级父类Object,所有的类都直接或间接继承该类。 定义一个类: classPoint{numx=0,y=1;} 编写main方法来使用这个类: voidmain(){varpoint=Point();//创建了一个Point类型的对象,可...

2019-03-01 17:04:37

Flutter和Dart系列六:Widget(一)

我们先编写一个简单的demo: import'package:flutter/material.dart';voidmain()=>runApp(Center(child:Text('Hello,world!',textDirection:TextDirection.ltr,),)); import:和Java中...

2019-02-28 18:28:44

Flutter和Dart系列四:Function

Dart语言是一门真正面向对象的语言,函数也是一个对象,并且类型为Function,这点和Js是类似的。 定义Function: 返回类型name(参数列表){} 例如: boolisAdult(intage){returnage>=18;}voidmain(){print(isAdult(28));//true}...

2019-02-23 18:43:29

理解设计模式之:多层次的单例模式

多维度的单例模式23种设计模式中,对于开发者而言,最熟悉不过就是单例模式了,单例模式的作用以及应用场景就不过多赘述了。今天我们的目的,主要是从多层次理解单例模式以及在实现单例模式中涉及的相关Java知识点。 饿汉式单例: publicclassSingleton{privatestaticfinalSingletonsInstance=newSing...

2019-02-23 15:28:51

Kotlin学习系列之:inline

inline:Kotlin中的一个关键字,用来修饰function,那么这个function就被称作inlinefunction(内联函数)。最初接触内联函数这个概念还是当初在学校学习C语言时候提到的,Java中是没有这一概念的,如今Kotlin又引入这一特性。那么inlinefunction有什么优势或者说特点呢? 特点:当你调用一个inlinefunction的时候,编译...

2019-02-01 10:30:11

Java中数组和ArrayList的区别

Java中数组和List泛型的区别:ArrayList中存放的都是对象,即引用类型,即使我们可以向里面put一个基本数据类型,那么也是基于自动装箱特性,将基本数据类型转换成对象;而数组中可以是任意类型 从实际工作经历上看,数组中是可以间隔存null的,而ArrayList是做不到这一点的 对于泛型数组是不能够实例化的,即不能newT[]出来,而newArrayList()是ok的 数...

2018-12-13 16:03:29

Kotlin学习系列之:相等性比较(Equality)

  今天被同事问到了三个等于号啥意思,有点懵,去年学习的时候没怎么太注意,所以翻了翻文档,特此记录一下:感觉文档上的概括很好,并且对于我如果回答==和equals的区别,感觉上面这种分类概括性很强:引用相等和结构相等。对于Object类中,equals方法的默认实现就是引用相等比较,如果要想某个类实现结构相等性比较,就必须重写equals方法,这是在Java中。在Kotlin中呢,原理是...

2018-12-07 17:28:57

理解设计模式之:装饰者模式

1.装饰模式(DecoratorPattern):又可以称之为包装模式(WrapperPattern),结构型设计模式之一,使用一种对客户端透明的方式来动态地扩展对象的功能。2.模式角色分析:抽象构件角色(Component):给出一个抽象接口,以规范准备接收附加责任的对象 具体构件角色(ConcreteComponent):定义将要接收附加责任的类 装饰角色(Decorat...

2018-11-09 18:36:36

理解设计模式之:责任链模式

1.责任链模式(ChainofResponsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2.优点:使得接收者和发送者都没有双方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可简化对象的相互连接,它们仅仅需要保持一个指向其后继者的引用,而不需保持它所有的候...

2018-11-09 13:48:29

Bugly热更新:天坑官方文档

  昨晚在集成Bugly的热更新到项目中的时候,打包安装到手机上,一直报错:java.lang.NoClassDefFoundError:Failedresolutionof:Lcom/tencent/tinker/entry/DefaultApplicationLike;网上搜索一看,说是dex分包的问题,要将Bugly相关类放到主包中(class.dex),可是我解压我的ap...

2018-11-02 10:49:01

Android Realm数据库:Compilation failed; see the compiler error output for details.

  最近在项目中使用Realm数据库,然后就出现了一个莫名其妙的报错:Compilationfailed;seethecompilererroroutputfordetails.如果再详细点:org.gradle.api.tasks.TaskExecutionException:Executionfailedfortask':wallet:compileDe...

2018-10-10 18:26:15

Selector中android:constantSize属性

  今天之所以要提到这个属性,是因为开发中遇到的一个问题:1.先来看看ui图:2.为了实现这种很常见的效果,就使用了RadioButton,右边的图标就以drawableRight的形式添加进去:<selectorxmlns:android="http://schemas.android.com/apk/res/android"><itema...

2018-09-28 14:22:11
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。