- 博客(7)
- 资源 (4)
- 收藏
- 关注
原创 Flutter和Dart系列之八:路由
截至目前为止,我们的Widget都是在一个页面上实现的。对于一个App而言,不可能只有一个页面。那么在Flutter怎样实现页面间的跳转呢? 启动一个新的页面:Navigator.push(),类似Android中的startActivity class MyApp extends StatelessWidget { @override Widget build(BuildC...
2019-03-15 17:58:30 799
原创 final关键字在Android和Java中使用总结
final作用于类上:表示该类不可被继承 某些类在设计的时候,可能出于安全的考虑,不希望被继承,例如String类。final类中的属性和方法可以是final或者非final,但是由于不能被继承,也就意味着final类中的方法都是final的,当然你也可以显式去指定。在《Effective Java》一书中,有句名言“design and document for inheritance...
2019-03-14 13:35:06 945
原创 Flutter和Dart系列七:Column和Row
对于线性的布局排列,Android中使用的是LinearLayout,至于是横向还是纵向,则是通过orientation属性来指定的,orientation=vertical表示纵向线性,orientation=horizontal表示横向线性。在Flutter中,将这两种线性布局分别用Column和Row来表示。 Column:orientation=vertical void ma...
2019-03-12 12:30:46 1217
原创 DiskLruCache的源码分析
如何拿到一个DiskLruCache的对象? 通过DiskLruCache的open方法,因为它的构造是私有的,所以你不是能够直接new的。open方法有四个参数: directory:磁盘缓存的路径 appVersion:app的版本号,这个地方看清况传入,如果你想要当app升级时,之前的缓存失效,那么这个地方你就可以传入当前app的版本号;否则的话,缓存在app升级时仍然保留,...
2019-03-11 14:49:21 376
原创 基于《Android插件化开发指南》第5章对于"欺骗AMS"的思考
在我们初学Android阶段经常会遇到一个异常: Unable to find explicit activity class xxx; have you declared this activity in your AndroidManifest.xml?异常信息提示的很清楚,原来我们在start一个新的Activity时,忘记在AndroidManifest.xm...
2019-03-07 13:54:46 1308
原创 基于《Android插件化开发指南》第4章对于ActivityManager hook的思考
最近在读包建强老师的《Android插件化开发指南》一书,在读到第4章对于ActivityManager hook时,有点小启发。先看hook的代码(基于Android9.0源码,兼容Android7.0之前的版本代码需改动): public class HookHelper { public static void hookActivityManager() { ...
2019-03-04 16:35:51 1118
原创 Flutter和Dart系列五:类和对象
Dart是一门面向对象的语言。和Java一样,它有个超级父类Object,所有的类都直接或间接继承该类。 定义一个类: class Point { num x = 0, y = 1; } 编写main方法来使用这个类: void main() { var point = Point(); //创建了一个Point类型的对象,可...
2019-03-01 17:04:37 1374
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人