美文网首页
day_01 android 简介,基础架构

day_01 android 简介,基础架构

作者: 123yuan123 | 来源:发表于2017-12-01 15:17 被阅读0次

    1.安卓系统架构

    分4层结构

    1. application:应用程序;用Java开发

    2.application frame:应用程序框架;用Java和jni开发(Java native interface)

    3. libraries +android runtime dvm : 函数库和虚拟机层 ; c/c++

    4. linux kernel driver :linux内核驱动层; c

    2.java和android虚拟机的不同

    jvm :sum

    dvm :google 版权问题。

    jvm : java 虚拟机; 基于栈架构,栈是内存上的一个空间,执行指令操作需要向Cpu寻址后执行。 执行的是多个.class文件。

    dvm : dalvik 虚拟机;基于寄存器架构;寄存器是Cpu的一个组成部分,可以直接执行指令操作,无需寻址。执行的是一个.dex文件。

    3.android工程目录结构

    .java文件调用组件 : R.drawable.icon .xml文件调用组件 : @/drawable/icon

    1.src :代码目录

    2.gen:自动生成的文件都在该目录,不要修改; R文件,对资源文件的一个引用索引

    3.android 核心jar包和第三方jar包

    4.assets : 资产目录,一般存放应用程序所使用 的一些工具,数据

    5.libs

    6.bin : 程序编译打包过程中产生的文件都在该目录

    7.res: 资源目录

    drawable:图片资源

    layout: 布局

    menu:菜单

    values: dimens 长度资源 strings 字符串 style 样式资源

    4..Android的打包过程

    使用工具 javac                dx.bat                                                                aapt               签名认证(jarsigner.exe)

    .java---------->.class ---------->.dex(androidmanifest.xml,res ,assets)----------->.apk------------->finish apk-

    adb.exe

    ------>devices

    5.ADB指令练习

    adb运行的端口是5037

    adb: 建立android设备与电脑之间的链接

    配置环境变量: C:\kaifa\adt-bundle-windows-x86_64_20140101\sdk\platform-tools

    adb指令:

    1.adb devices : 列出当前电脑所连接的android设备

    2.adb push pc_filepath phone_filepath;将电脑端文件推送到手机端

    3.adb pull phone_filepath pc_filepath;将手机端文件拉到电脑端

    4.adb install [-r] apkfilepath ;安装应用到手机上 , -r 代表强制安装

    5.adb uninstall packagename;卸载应用

    6.adb kill-server 关闭adb服务链接

    7.adb start-server 开启adb服务链接

    8.netstat -oan 5037 对应的 Pid

    9.adb shell :进入手机linux环境下

    10. adb shell + logcat: 查看手机打印的日志信息

    11. adb shell + ls -l : 查看手机目录结构

    12.如果当前电脑链接多台android设备,要执行adb操作时需要指定操作的是哪台设备。 adb -s 设备序列号;

    例如: adb -s emulator-5554 uninstall com.itheima.helloworld

    6.应用代码--拨号器

    publicclassMainActivityextendsActivity {

    protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    // 获得组件ID

    finalEditTextphone_number=(EditText)findViewById(R.id.phone_number);

    Button call_bt=(Button)findViewById(R.id.call_number);

    //绑定监听事件使用匿名内部类进行实现接口

    call_bt.setOnClickListener(newOnClickListener() {

    @Override

    publicvoidonClick(View v) {

    //获取文本框内的内容,在内部类中使用外部类的成员时,成员必须是final

    String number=phone_number.getText().toString().trim();

    //判断内容不能为空

    if(TextUtils.isEmpty(number))

    {

    //输出提示信息

    Toast.makeText(MainActivity.this,"不能为空", 1).show();

    return;

    }

    //拨打电话时需要创建一个意图对象

    Intent in=newIntent().setAction(Intent.ACTION_CALL);

    //注意冒号

    in.setData(Uri.parse("tel:"+number));

    //开启意图

    startActivity(in);

    }

    });

    }

    }

    相关文章

      网友评论

          本文标题:day_01 android 简介,基础架构

          本文链接:https://www.haomeiwen.com/subject/pdlwbxtx.html