笔记

本文深入解析Android系统的四层架构,包括应用程序层、应用程序框架层、系统运行库层和Linux核心层,以及Android布局和关键组件如Intent、Activity生命周期等。同时,提供了丰富的网络请求库、UI组件和数据库操作指南。
摘要由CSDN通过智能技术生成

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)
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值