Android系统架构
采用分层架构,分为四个层:应用程序层、应用程序框架层、系统运行库层、Linux核心层;
1.应用程序:Android会同一系列核心应用程序包一起发布,该应用程序包包括系统界面、联系人管理程序、浏览器等。所有的应用程序都是使用JAVA语言 编写的
2.应用程序框架:应用程序架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,并供其它的任何应用程序使用,使用户可以方便的替换程序组件。
3.系统运行库:
a、系统库:其中包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。
b、运行库:由核心库和Dalvik虚拟机构成。核心库提供了JAVA编程语言核心库的大多数功能,每个Android应用程序都在它自己的进 程中运行,都拥有一个独立的Dalvik虚拟机实例。
4.Linux内核:Android 的核心系统服务基于 Linux 2.6 内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。内核作为一个抽象层,存在于软件栈层和硬件层之间。
Anroid布局
Android里面有五大布局,LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)、RelativeLayout(相对布局)。其中最常用的的是LinearLayout、FrameLayout和RelativeLayout。这些布局都可以嵌套使用。
ProgressBar Dialog AlertDialog Toast Debug调试 Intent
Activity生命周期
启动Activity:系统会先调用onCreate方法,这是生命周期第一个方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
onCreate方法:一般做一些初始化工作,比如setContentView去加载布局资源,初始化Activity所需的数据。
onStart方法:表示Activity正在启动,已经可见,但是无法和用户交互。
onResume方法:Activity已经可见并且开始活动,已经出现在前台
头条接口:
http://c.m.163.com/nc/article/headline/T1348647909107/0-20.html
科技接口:
http://c.m.163.com/nc/article/list/T1348648756099/0-20.html
财经接口:
http://c.m.163.com/nc/article/list/T1348648141035/0-20.html
军事接口:
http://c.m.163.com/nc/article/list/T1348649079062/0-20.html
体育接口:
http://c.m.163.com/nc/article/list/T1348649079062/0-20.html
房产接口:
http://c.m.163.com/nc/article/list/T1399700447917/0-20.html
足球接口:
http://c.m.163.com/nc/article/list/T1348648517839/0-20.html
娱乐接口:
http://c.m.163.com/nc/article/list/T1348648650048/0-20.html
电影接口:
http://c.m.163.com/nc/article/list/T1348654060988/0-20.html
汽车接口:
http://c.m.163.com/nc/article/list/T1350383429665/0-20.html
笑话接口:
http://c.m.163.com/nc/article/list/T1348654151579/0-20.html
游戏接口:
http://c.m.163.com/nc/article/list/T1348650593803/0-20.html
时尚接口:
http://c.m.163.com/nc/article/list/T1348650839000/0-20.html
情感接口:
http://c.m.163.com/nc/article/list/T1370583240249/0-20.html
精选接口:
http://c.m.163.com/nc/article/list/T1379038288239/0-20.html
电台接口:
http://c.m.163.com/nc/article/list/T1348649145984/0-20.html
NBA接口:
http://c.m.163.com/nc/article/list/T1348649776727/0-20.html
数码接口:
http://c.m.163.com/nc/article/list/T1351233117091/0-20.html
移动接口:
http://c.m.163.com/nc/article/list/T1356600029035/0-20.html
彩票接口:
http://c.m.163.com/nc/article/list/T1348654225495/0-20.html
教育接口:
http://c.m.163.com/nc/article/list/T1349837670307/0-20.html
论坛接口:
http://c.m.163.com/nc/article/list/T1348654204705/0-20.html
旅游接口:
http://c.m.163.com/nc/article/list/T1348649654285/0-20.html
手机接口:
http://c.m.163.com/nc/article/list/T1349837698345/0-20.html
博客接口:
http://c.m.163.com/nc/article/list/T1348648037603/0-20.html
社会接口:
http://c.m.163.com/nc/article/list/T1348654105308/0-20.html
家居接口:
http://c.m.163.com/nc/article/list/T1397016069906/0-20.html
暴雪接口:
http://c.m.163.com/nc/article/list/T1397116135282/0-20.html
亲子接口:
http://c.m.163.com/nc/article/list/T1348649475931/0-20.html
CBA接口:
http://c.m.163.com/nc/article/list/T1371543208049/0-20.html
图片
http://gank.io/api/data/%E7%A6%8F%E5%88%A9/20/1
视频接口
热点视频:
http://c.m.163.com/nc/video/list/V9LG4E6VR/n/0-10.html
娱乐接口:
http://c.m.163.com/nc/video/list/00850FRB/n/0-10.html
搞笑接口:
http://c.m.163.com/nc/video/list/V9LG4B3A0/n/0-10.html
精品接口:
http://c.m.163.com/nc/video/list/00850FRB/n/0-10.html
直接粘贴报错就用系统生成的
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);判断sd卡是否是挂在状态
implementation 'com.youth.banner:banner:1.4.10' banner依赖 轮播图
implementation 'com.android.support:design:27.1.1' TabLayout组件
implementation 'com.squareup.okhttp3:okhttp:3.8.1' 网络请求 Okhttp
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.google.code.gson:gson:2.8.1' Gson解析
implementation 'com.squareup.retrofit2:retrofit:2.1.0' 网络请求 Retrofit
implementation 'com.squareup.retrofit2:converter-gson:2.3.0' 网络请求所用Gson
万能适配器
allprojects {
repositories {
…
maven { url “https://jitpack.io” }
}
}
dependencies {
implementation ‘com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30’
}
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.0.2' Rxjava
implementation 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'com.android.support:recyclerview-v7:27.1.1' Recycler
implementation ‘de.hdodenhof:circleimageview:2.2.0’ 圆形图OOOOO
implementation 'com.github.bumptech.glide:glide:3.8.0' 解析图片
implementation 'com.squareup.picasso:picasso:2.3.2' 解析图片
implementation 'com.jude:rollviewpager:1.4.5' 自动轮播图
implementation 'com.j256.ormlite:ormlite-android:5.0' ORM数据库
implementation 'eu.the4thfloor.volley:com.android.volley:2015.05.28' Volley
implementation 'com.recker.flybanner:flybanner:1.3' 支持无限循环的广告栏控件
implementation 'com.jakewharton:butterknife:7.0.1' Butterknife
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3'
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.3'
https://github.com/youth5201314/banner/tree/master/app/src/main/java/com/test/banner
访问轮播图的网址
//没有使用特殊Header,可以不加这行
File–Setting - Build… — Gradle — offline work去掉
apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-android-extensions’
GreenDao配置 // add plugin
classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’
//配置GreenDao插件
apply plugin: ‘org.greenrobot.greendao’
greendao {
//数据库的schema版本,也可以理解为数据库版本号
schemaVersion 1
//设置DaoMaster、DaoSession、Dao包名,也就是要放置这些类的包的全路径。
daoPackage ‘com.liangxq.mygreendao.dao’
//设置DaoMaster、DaoSession、Dao目录
targetGenDir ‘src/main/java’
}
//添加依赖
implementation ‘org.greenrobot:greendao:3.2.2’
//添加依赖
implementation ‘com.jakewharton:butterknife:8.8.1’
annotationProcessor ‘com.jakewharton:butterknife-compiler:8.8.1’
XR
implementation ‘com.jcodecraeer:xrecyclerview:1.5.9’
android studio 新版本XRecycler解决方法
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == ‘com.android.support’) {
if (!requested.name.startsWith(“multidex”)) {
details.useVersion ‘27.1.1’
}
}
}
}
//5b4ef266f43e480e270000c2
implementation files(‘libs/AMap3DMap_6.3.0_AMapNavi_6.2.0_AMapSearch_6.1.0_AMapLocation_4.1.0_20180705.jar’)
keytool -v -list -keystore
定位
signingConfigs {
debug {
storeFile file(‘gaode.jks’)
storePassword “123456”
keyAlias “key0”
keyPassword “123456”
}
}
EventBus
compile 'org.greenrobot:eventbus:3.1.1'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation “org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version”
apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-android-extensions’
SQList数据库
1)库
create database aaa; //创建数据库
drop database aaa; //删除数据库
use aaa; //切换使用数据库
show databases; //显示数据库
2)表
create table abc( //创建表结构
name text,
sex varchar(100),
age int(10)
);
drop table abc; //删除表
desc abc; //
// 修改列名
alter table 表名 change 要修改的属性mobile 改为Code int;
//修改表名称
alter table 加表名 rename to 改为student;
//删除列
alter table 表名 drop classname;
//修改列类型
alter table 表名 modify 要改的属性 改为char;
//添加列
alter table 表名 add(classname varchar(100));
显示表结构
3)数据
insert into abc(name,sex,age) values(‘abc’,’nan’,20); //插入数据
update abc set age = 101 【where name = 'abc'】 //更改数据
delete from abc 【where name = 'abc'】 //删除数据
select * from abc 【where age > 18】 //查询数据
4)添加中文:
安装根目录—my.ini文件—-default-character-set=gbk
5)约束
主键: primary key
自增: auto_increment
非空: not null
唯一: unique
create table abc(
id int(100) primary key auto_increment, 主键自增
name varchar(100) not null unique, 非空唯一
sex varchar(100),
age int(10)
);