Android开发学习-基础组件

整体结构图

Linux内核

1、Display Driver:显示驱动

2、Camera Driver:相机驱动

3、Bluetooth Driver:蓝牙驱动

4、Flash Memory Driver:闪存驱动

5、Binder IPC Driver:进程监督器驱动

6、Power Management:电池

类库层

Surface Manager:显示管理

Media Framework:多媒体框架

SQLite:移动端轻量级数据库

OpenGL|ES:3D图库引擎

Free Type:字体显示

WebKit:浏览器内核

SGL:2D图库引擎

SSL:安全通信

libc:c语言核心库

JNI:(Java Native Interface)是一种编程桥梁,它允许Java代码与本地代码(如C、C++等)进行交互。在Android平台上,JNI被广泛用于将本地代码集成到Java应用程序中,以便实现更高效的应用程序。

应用框架层:java语言

1、Activity Manager: 每个界面对应一个activity

2、window Manager:窗口

3、Content Providers:内容

4、View System:视图

5、Notification Manager:通知

6、Package Manager:apk包 aab包

7、Telephony Manager:电话

8、Resource Manager:

9、Location Manager:

10、XMPP Service:即时通讯

applications

Home:系统首页

Contacts:联系人

Phone:电话

Browser:浏览器

。。。。。。

区别DVM和JVM

1、首要差别

Dalvik:基于寄存器,编译和运行都会快一些

JVM:基于栈(内存),编译和运行都会慢一些

2、字节码区别

Dalvik:执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小。

JVM:执行.class格式的字节码

3、运行环境:

Dalvik:一个应用启动都运行一个单独的虚拟机运行在一个单独的进程

JVM:就一个虚拟机,所有应用都在JVM中。

设备目录

/data/app/:存放着第三方的APK目录,可以卸载的那种。

/system/app/:其中是系统中的应用安装文件

/data/data/packagename/:应用安装时,自动生成。卸载时,自动删除

/storage/sdcard/:sd卡的文件夹

SDK全称为 Software Development Kit,它可将 App 源码编译为可执行的 App 应用。

手机连接Android studio

是通过adb【android-debug-brigde】来进行连接的。

proguard-rules.pro:该文件用于描述java代码的混淆规则。

gradle.properties:该文件用于配置编译工程命令行参数,一般无需改动。

setting.gradle:该文件配置了需要编译哪些模块。初始内容为include:'app',表示只编译app模块。

local.properties,项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。

<LinearLayout
    android:gravity="center">
    <!-- gravity让子组件 垂直和水平居中 -->
</LinearLayout>

Activity

创建Activity

1、创建布局问题

2、创建activity的类,继承AppCompatActivity

3、在清单文件中进行注册

  <activity android:name=".launch.SplashActivity"/>

还可以直接使用android studio来创建,所有的都配齐了。

跳转Activity

Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        Intent intent = new Intent();
        intent.setClass(MainActivity.this,MainActivity2.class);
        startActivity(intent);
    }
});

简单控件

1、textview 如果多次使用的话,那么定义在strings.xml中比较好。

tv_hello.setText(R.string.hello);

2、根据手机分辨率,从dp单位,转换成px单位

public static int dip2px(Context text,float dpValue){
    //获取当前手机的像素密度 1dp对应几个px
    float scale = context.getResources().getDisplayMetrics().density;
    //利用int只保留整数的特点,实现四舍五入取整
    return (int)(dpValue  * scale + 0.5f);
}

视图的对齐方式

layout_gravity:指定了当前视图相对于上级视图的对齐方式。

gravity:指定了下级视图相对于当前视图的对齐方式。

layout_weight:权重;

layout_height="0dp" 
layout_weight="1"

RelativeLayout相对视图

GridLayout网格布局

网格布局支持多行多列的表格排列。

columnCount:指定了网格的列数,即每行能放多少个视图

rowCount:指定了网格的行数,即每列能放多少个视图

ScrollView滚动视图

Button控件

text的英文字母,展示是强制大写的,文本是默认居中的。

textAllCaps:它指定了是否将英文字母转为大写,为True时,表示自动转大写,为false表示不做大写转换。android:textAllCaps="false",该属性默认为true

public void doClick(View view) {
        String str = String.format("%s 您点击了按钮:%s", DateUtil.getNowTime(), ((Button) view).getText());
        Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
    }

setOnClickListener

setOnLongClickListener,按钮被按住超过500毫秒时,触发该事件。

ImageView

android:src="@drawable/abc_vector_test"

imageView.setImageResource(R.drawable.ic_launcher_background);

缩放:scaleType

imageView.setScaleType(ImageView.ScaleType.CENTER);

ImageButton

继承了ImageView,可以放置返回的那种箭头,计算器上的根号等图形,来进行点击操作。

<button
    android:text="图标在左"
    android:drawableLeft="@drawable/ic_xxxxx"

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值