1.val是只读变量 var 是可读变量
2.kotlin字符串支持转义字符,类似java。kotlin支持三引号表示原生字符串,它不支持转义字符。trimMargin()可以去除前导空格,“|”为边界前缀,在行首会被trimMargin()方法舍去,可以改成其它字符作为边界前缀,如trimMargin(">")。
view.layout();4个参数
l左边是距离父布局的左边多远
r左边是距离父布局的左边多远
t上边是距离父布局的上边多远
b下边是距离父布局的上边多远
android:clipChildren="false”布局可以占到外部更改Json解析的参数名字@JSONField(name = "_id") private String id;@JSONField(name = "message") private String mess;Mac下/usr/local目录默认是对于Finder是隐藏,如果需要到/usr/local下去,打开Finder,然后使用command+shift+G,在弹出的目录中填写/usr/local/bin就可以了。
Android系统没有采用上述提到的各种进程间通信机制,而是采用Binder机制 ,android中常见的一些进程间通信 AIDL,Broadcast,ContentProvider.
AIDL全称 Android Interface Definition Language就是interface.空指针最为常见,也最容易规避,使用的时候一定要进行null check,采取不信任原则: 1.方法形参要判空后才使用; 2.全局变量容易被系统回收或者更改,使用全局变量前建议判空; 3.第三方接口的调用,对返回值进行判空。 4.请注意线程安全
- Android基础
- Fragment、Service、Binder、Activity、 Broadcast、WebView安全漏洞
- 异步消息处理机制
- Handler、AsyncTask、IntentService、 HandlerThread
- View相关技术
- View的渲染和绘制、事件分发、ListView
- Android构建
- Android编译打包、 Git、 Proguard混淆、 Gradle、Lint检测
- 开源框架源码
- 网络框架:Retrofit、Okhttp、Volley 图片框架:Glide、Fresco、UIL IOC框架:Dagger2、Butterknife RxJava
- Android性能优化
- UI卡顿、内存管理、内存泄漏
- 设计模式相关技术
- 观察者模式、动态代理、工厂、策略类、 装饰、桥接、单例
- Java高级相关技术
- 堆栈、反射、注解、范型、线程池/并发编程、Socket、IO/NIO、集合框架、类加载器 、Dalvik/ART/Dex
- 网络协议相关
- HTTPS/HTTP、DNS、TCP/IP 以及加密算法
(懒人必备)Android开源数据库LitePal
1.Book 类需要继承 DataSupport 2.初始化LitePa 设置application 名为org.litepal.LitePalApplication或代码实现 LitePal.initialize(context)
compile 'com.jakewharton:butterknife:5.1.1’快速findviewbyId
Snackbar 和toast一个效果,从底部弹出