android框架

Android USB配件模式

空扰寡人 提交于 2020-01-31 03:28:18
原文: http://android.eoe.cn/topic/android_sdk USB配件模式允许用户连接那些专门搭载Android设备的USB主机硬件。这些配件必须遵守Android配件开发工具包文档中所列出的Android附件协议。这使得搭载Android系统的设备在不充当USB主机的情况之下,仍然可以和USB硬件进行交互。当一台搭载Android系统的设备处于USB配件模式时,所依附的Android USB配件作为主机为USB总线提供能源以及列举出相连的设备。Android3.1(API12级)提供了USB配件模式并且这一特点也继承了Android2.3.4(API10级)以此来支持更多设备。 选择正确的USB附件APIs 尽管USB附件API在Android3.1平台才开始介绍,但是也可以在Android2.3.4API中通过附加类库使用。因为这些APIs都是通过额外的类库来使用的,你可以导入两个包来支持USB配件模式。取决于你想支持什么样的搭载Android系统的设备,你也许不得不在一个的基础上使用另外一个: com.android.feature.usb:为了支持Android2.3.4的USB配件模式,Google APIs附加类库包括了USB外设APIs并且它们就是包含在这个命名空间的后面。Android3

Android系统框架介绍

一世执手 提交于 2020-01-30 23:58:31
从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1) 应用程序层 Android 平台不仅仅是操作系统,也包含了许多应用程序,诸如 SMS 短信客户端程序、电话拨号程序、图片浏览器、 Web 浏览器等应用程序。这些应用程序都是 用 Java 语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个 性化。 2) 应用程序框架层 应用程序框架层是我们从事 Android 开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提 供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。 a) Activity Manager (活动管理器) 管理各个应用程序生命周期以及通常的导航回退功能 b) Window Manager (窗口管理器) 管理所有的窗口程序 c) Content Provider (内容提供器) 使得不同应用程序之间存取或者分享数据 d) View System (视图系统) 构建应用程序的基本组件 e) Notification Manager( 通告管理器 ) 使得应用程序可以在状态栏中显示自定义的提示信息 f)

android sqlite3 命令

倖福魔咒の 提交于 2020-01-30 19:13:01
android sqlite3 命令 sqlite3: 一个 SQLite 数据库的命令行接口 原文地址: http://www.sqlite.org/sqlite.html SQLite 库包含一个名字叫做 sqlite3 的命令行 , 它可以让用户手工输入并执行面向 SQLite 数据库的 SQL 命令。本文档提供一个样使用 sqlite3 的简要说明。 开始 启动 sqlite3 程序,仅仅需要敲入带有 SQLite 数据库名字的 "sqlite3" 命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后 sqlite3 程序将提示你输入 SQL 。敲入 SQL 语句(以分号 “ ; ” 结束),敲回车键之后, SQL 语句就会执行。 例如,创建一个包含一个表 "tb11" 名字为 "ex1" 的 SQLite 数据库,你可以这样做: $sqlite3 ex1 SQLite version 3.3.17 Enter ".help" for instructions sqlite> create table tbl1(one varchar(10), two smallint); sqlite> insert into tbl1 values('hello!', 10); sqlite> insert into tbl1 values('goodbye', 20);

android okhttp框架get请求

﹥>﹥吖頭↗ 提交于 2020-01-30 03:04:51
// 开启线程,android 不允许在主线程执行网络任务,所以要开启其他线程,来执行耗时操作,同时利用handler更新UI private void getDataFromGet(){ new Thread(){ @Override public void run() { super.run(); try{ String result = get("http://api.m.mtime.cn/PageSubArea/TrailerList.api"); Log.d("firstActivity", result); Message msg = Message.obtain(); msg.what = GET; msg.obj = result; handler.sendMessage(msg); }catch (IOException e){ e.printStackTrace(); } } }.start(); } protected String get(String url) throws IOException{ Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); return response

金九银十中,看看这31道Android面试题

左心房为你撑大大i 提交于 2020-01-30 01:48:52
阅读目录 1.如何对 Android 应用进行性能分析 2.什么情况下会导致内存泄露 3.如何避免 OOM 异常 4.Android 中如何捕获未捕获的异常 5.ANR 是什么?怎样避免和解决 ANR(重要) 6.Android 线程间通信有哪几种方式 7.Devik 进程,linux 进程,线程的区别 8.描述一下 android 的系统架构 9.android 应用对内存是如何限制的?我们应该如何合理使用内存? 10. 简述 android 应用程序结构是哪些 11.请解释下 Android 程序运行时权限与文件系统权限的区别 12.Framework 工作方式及原理,Activity 是如何生成一个 view 的,机制是什么 13.多线程间通信和多进程之间通信有什么不同,分别怎么实现 14.Android 屏幕适配 15.什么是 AIDL 以及如何使用 16.Handler 机制 17.事件分发机制 18.子线程发消息到主线程进行更新 UI,除了 handler 和 AsyncTask,还有什么 19.子线程中能不能 new handler?为什么 20.Android 中的动画有哪几类,它们的特点和区别是什么 21.如何修改 Activity 进入和退出动画 22.SurfaceView & View 的区别 23.开发中都使用过哪些框架、平台 24

醒醒,Android开发居然只有cv最顺手,你还会什么?

一笑奈何 提交于 2020-01-29 08:49:11
作为一个Android开发,现在的你已经开发多少年了? 你的代码质量有没有随着经验的增加而提高?没有的话就需要反思了。 现在来分享一个有六年经验Android开发,都学到了什么? 一,学习能力 想要成长,学习能力尤为重要 我们一直有句老话,学如逆水行舟,不进则退。就像我们Android进阶,需要学习的高级内容比较多 1)Java语言进阶与Android相关技术内核 像 泛型,多线程,反射,JVM,Java IO,注解,序列化等 2)App开发框架知识体系(app亦对象) Android 2013~2016年的技术,大家网上Copy代码习惯了 对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道,天天在复制这些代码;陌生的是虽然天天和这些代码打交道,从未深入研究过这些代码的原理,代码深处的内涵。 我们需要从新的角度去分析这些知识点,深入研究他们,要学习源码,模仿源码,然后再hook源码, 这样才能说自己懂这块的知识。这些都是做Android开发,做高级工程师的基础。 3)360° Android app全方位性能调优 书写高性能代码,再调优 4)Android前沿技术 比如热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等 这些技术你不能只会用,你需要知道他的原理 5)NDK 模块开发 NDK

Android 常用开源框架源码解析 系列 (四)Glide

瘦欲@ 提交于 2020-01-29 04:02:58
一、定义 Glide 一个被google所推荐的图片加载库,作者是bumptech。对Android SDk 最低要求是 API 10 与之功能类似的是Square公司的picasso 二、基本概念 Model :数据来源 :Uri、本地文件、资源ID Data :加工数据 Resource :对原始数据进行解码,解码之后的资源 resource Resource decode :资源解码器 TransformedResource:转换资源 TranscodedResource:转码,将静态、Gif动态图进行格式转换以便能加载 Target :目标图片 三、整体流程 A:Model图片数据源 ———ModelLoader加载—>原始数据Data——Decoder解码——> Resource——Transform裁剪——>TransformResource——Transcode转码——>TranscodeResource——封装——>Target 四、源码 引入 :compile 'com.github.bumptech.glide:glide:3.7.0' 4.1、使用流程三步曲: Glide .with(“上下文context”) .load(“url”) .into(“显示的控件资源"); 4.2、常用加载图片的配置参数: public void LoadImage(View

Android Jetpack系列——ViewModel源码分析

人走茶凉 提交于 2020-01-28 21:10:24
本文章已授权微信公众号郭霖(guolin_blog)转载。 本文章主要是对 ViewModel 进行源码分析,建议对着 示例代码 阅读文章, 示例代码 如下: ViewModelDemo 本文章使用的是 Android SDK 29 的源码分析。 定义 Android框架管理 UI控制器的生命周期 (例如: Activity 和 Fragment ), Framework 可能决定 销毁 或者 重新创建一个UI控制器 ,以响应某些用户操作或者设备事件,这些操作或者事件完全超出你的控制。 如果系统 销毁 或者 重新创建一个UI控制器 ,那么你存储在其中的任何 与UI相关的临时数据 都 丢失 ,例如:你的应用程序在某个 Activity 中包含一个用户列表,当 配置信息 更改重新创建 Activity 时,新的 Activity 必须重新获取用户列表。对于简单数据, Activity 可以使用 onSaveInstanceState() 方法,并且在 onCreate() 方法中从 Bundle 中恢复数据,但是这种方法只适用于 少量的、可以序列化和反序列化的数据 ,而不是 潜在的大量数据的用户列表 或者是 很多的Bitmap 。 另外一个问题是 UI控制器 经常需要进行 异步调用 ,这可能需要一些时间才能返回, UI控制器 需要管理这些调用,并确保系统在 销毁 后对其进行清理,以避免

appium+python环境搭建

六月ゝ 毕业季﹏ 提交于 2020-01-28 18:40:27
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python。小编擅长Python,所以接下来的教程是appium+python的实例。 学习appium最大的难处在于环境的安装,80%的人死于环境安装,然后就没然后了,10%的人被环境折腾一周以上,只有剩下的10%人品好,可以顺利安装。 一、环境准备 小编的环境是Windows 7版本 64位系统(32位的同学自己想办法哦) 1.jdk1.6.0 (64位) 2.android-sdk_r24.3.4-windows 3.python:2.7(3.6也可以) 4.appium:1.4.13.1 5.Node.js:node-v4.4.7-x64 6.Appium-Python-Client 二、jdk安装 1.下载jdk包,小编的是64位1.6版本,其它高级版本应该也是可以的。根据自己的系统选择对应版本 2.一路傻瓜式安装,注意安装路径不要有空格,不要有中文。jdk和jre不要放在一个文件夹下 3.设置三个环境变量,我的电脑>选择“属性”->“高级”->“环境变量”->“系统变量”->“新建” JAVA_HOME----D:\Java\jdk1.6.0” (根据自己安装路径填写) 1471426392934219.png 746x404 18.4 KB

Appium+python自动化1-环境搭建(上)

早过忘川 提交于 2020-01-28 04:25:14
appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python。小编擅长Python,所以接下来的教程是appium+python的实例。 学习appium最大的难处在于环境的安装,80%的人死于环境安装,然后就没然后了,10%的人被环境折腾一周以上,只有剩下的10%人品好,可以顺利安装。 一、环境准备 小编的环境是Windows 7版本 64位系统(32位的同学自己想办法哦) 1.jdk1.6.0 (64位) 2.android-sdk_r24.3.4-windows 3.python:2.7(3.6也可以) 4.appium:1.4.13.1 5.Node.js:node-v4.4.7-x64 6.Appium-Python-Client 二、jdk安装 1.下载jdk包,小编的是64位1.6版本,其它高级版本应该也是可以的。根据自己的系统选择对应版本 2.一路傻瓜式安装,注意安装路径不要有空格,不要有中文。jdk和jre不要放在一个文件夹下 3.设置三个环境变量,我的电脑>选择“属性”->“高级”->“环境变量”->“系统变量”->“新建” JAVA_HOME----D:\Java\jdk1.6.0” (根据自己安装路径填写) 1471426392934219.png 746x404 18.4 KB