导航:首页 > 操作系统 > android库

android库

发布时间:2022-01-22 08:33:46

‘壹’ 系统运行库android主要包含哪些库

* Bionic系统 C 库:C语言标准库,系统最底层的库,C库通过Linux系统来调用。
* 多媒体库(MediaFramework):Android系统多媒体库,基于 PacketVideo OpenCORE,该库支持多种常见格式的音频、视频的回放和录制,以及图片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。
* SGL:2D图形引擎库。
* SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。
* OpenGL ES 1.0:3D效果的支持。
* SQLite:关系数据库。
* Webkit:Web浏览器引擎。
* FreeType:位图(bitmap)及矢量(vector)。

‘贰’ android库文件文档在哪个文件夹

Android SDK 目录下有很多文件夹,主要都是干什么的呢?

1. add-ons 这里面保存着附加库,比如google Maps,当然你如果安装了OPhone SDK,这里也会有一些类库在里面。

2. docs 这里面是Android SDK API参考文档,所有的API都可以在这里查到。

3. market_licensing 作为Android Market版权保护组件,一般发布付费应用到电子市场可以用它来反盗版。

4. platforms 是每个平台的SDK真正的文件,里面会根据API Level划分的SDK版本, 这里就以Android 2.2来说,进入后有一个android-8的文件夹,android-8进入后是Android 2.2 SDK的主要文件,其中ant为ant编译脚本,data保存着一些系统资源,images是模拟器映像文件,skins则是Android模拟器的皮肤,templates是工程创建的默认模板,android.jar则是该版本的主要framework文件,tools目录里面包含了重要的编译工具,比如aapt、aidl、逆向调试工具dexmp和编译脚本dx。

5. platform-tools 保存着一些通用工具,比如adb、和aapt、aidl、dx等文件,Android123提示,这里和platforms目录中tools文件夹有些重复,主要是从android 2.3开始这些工具被划分为通用了。

6. samples 是Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学习,对于SQLite数据库操作可以查看NotePad这个例子,对于游戏开发 Snake、LunarLander都是不错的例子,对于Android主题开发Home则是android m5时代的主题设计原理。

‘叁’ Android中静态库和共享库的区别

简单来讲:
静态库是在连接阶段直接拷贝到代码中使用的,而共享库是由加载器加载到内存,在运行时使用的。
编译出来的静态库(这里指jar包)里每个java文件对应的class文件都单独存在,可以直接导入Eclipse等IDE使用
而编译出来的共享库(jar包),内部是Android字节码Dex格式的文件,一般无法导入Eclipse等IDE使用。Android.mk中由BUILD_JAVA_LIBRARY指定生成共享BUILD_STATIC_JAVA_LIBRARY指定生成静态库。

‘肆’ android studio中插件和依赖库的区别

简答的说插件是给android studio这个开发IDE用的,依赖库是给你的项目用的。下面详细解释下。


插件:(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。android studio中插件就是其平台下帮助开发的小程序,比如:


‘伍’ Android一般采用什么数据库

用的Eclipse,数据量的话还可以把,因为是初学,所以就打算先少弄几个景点先试试,我想的是能不能做到应用去链接一个远端的数据库,就是比方说点开一个景点信息,它是从数据库中下载出来的。。额。。专业的我也不会说。。

‘陆’ android开发中常用的数据库是

如果是本地数据的需求用SQlite,如果像登陆有用验证或者网络间共享数据的话,就需要调用WebService与后台服务器数据交互,这两种数据是没有联系的。一个是本地数据库,一个是服务器端数据库。本地用数据库就是SQlite,别的不太可能,终端没有那么高的性能,再说甲骨文公司也没出手机端oracle啊。
如果你的数据是已知的,静态的,没有太多的变化,满可以在本地SQlite中存储、读取。这样不会因网络问题而降低效率和成功率。如果数据未知、有实时的变化或者有与其他用户交互、共享的数据必然需要后台服务器数据。

‘柒’ android底层库包含哪些

Android的本地实现层次具有基本的库和程序,这些库和程序是Android基本系统运行的基础,主要包含以下内容:
l 标准C/C++库Bionic;
l C语言工具库libcutils;
l init进程;
l shell工具;
l C++工具库libutils。

‘捌’ 如何对 Android 库进行依赖管理

Android 开发人员为项目选择库的时候,考虑的因素不仅仅是功能、可用性、性能、文档丰富度和技术支持情况。他们还关心库的大小,以及要添加的方法数量。因为项目越大,依赖也越多,要把应用的方法数量控制在65k 以下,开发人员感觉很有压力。另外,对于非发行版项目而言,Proguard 使用起来效率太低,而且开发人员视 multidex 如瘟疫,避之唯恐不及。因此,编写库的作者必须特别注意项目的大小。
为了减少库的方法数量,最简单的途径就是不包含任何多余的依赖。因为你包含的所有依赖,都会被传递并添加至用户的项目里。举个例子,如果你只需要几个简单的工具方法,比如默默地关闭一个资源,那就没必要为此添加 Guava 。自己编写方法,或者从一个现有的库中提取(但是务必做出说明)就可以了。用户肯定会感激你去除了多余的14k方法。
但是,这并不是说你不该使用外部库,而是你要做出明智的选择。比如,像 HTTP 客户端这样的库已经有了,你若再去重写一个,最终结果只能是浪费时间,倒不如用这些时间改进自己的库。
除了有选择地使用库以外,还有几个策略也可以帮助你保持库的精简。其中一个策略就是使用 provided scope(已提供范围)来声明依赖。 这是 gradle 中 Android build system(Android 构建系统)的一部分。与 compile scope(编译范围)不同,provided scope 仅在编译时包含依赖。这就意味着,用户在构建项目时,该依赖不会随着 APK 文件打包。如果想在运行时使用该依赖,用户需要在应用的 build.gradle 里显式声明。
注意: 还有一种与 provided scope 相反的机制叫 package scope(包范围)。这种依赖会随 APK 文件打包,但是在编译时不可用。
你可能还想在库中使用可选择性依赖。其中一个原因是,某些功能可能只有部分用户使用。例如 Retrofit 1.x ,该库可以使用 REST 调用来响应,而不使用回调。那些想使用 RxJava 的用户可以添加之,而不想使用它的用户也可以不添加,以免加重负担。自从 Retrofit 使用 maven build system (maven 构建系统)以后,其配置稍有更改,但理念还是相似的。
在此笔者要提醒大家,如果你发现自己库中的某些功能只对少数用户有用,你应该认真考虑一下是否还要保留这些功能。关于这一点,后文中还会讲到。
在库里包含可选择性依赖的另一个原因,是Android 框架已经提供了一种解决方案,但是某个外部库提供的解决方案性能更好。如果用户本就依赖于该外部库,或者愿意增加方法数量以获得更好的性能,就可以添加可选择性依赖。
我最近看到的 PlacesAutocompleteTextView 库,就属于这种情况。该库使用的内部 HTTP 客户端,既可以是 OkHttpClient,也可以是 HttpURLConnection。通常,前者的性能更好,但是需要添加 OkHttp 作为依赖。 如果用户不想包含该依赖,可以自动从标准库回退到 HttpURLConnection。
为此,需要一个“resolver” 类以确定运行时要使用的依赖。 例如,以下的类就用于选择 HTTP 客户端:
public final class PlacesHttpClientResolver {
public static final PlacesHttpClient PLACES_HTTP_CLIENT;

static {
boolean hasOkHttp;

try {
Class.forName("com.squareup.okhttp.OkHttpClient");
hasOkHttp = true;
} catch (ClassNotFoundException e) {
hasOkHttp = false;
}

PlacesApiJsonParser parser = JsonParserResolver.JSON_PARSER;

PLACES_HTTP_CLIENT = hasOkHttp ? new OkHttpPlacesHttpClient(parser) : new (parser);
}

private PlacesHttpClientResolver() {
throw new RuntimeException("No Instances!");
}
}

该类被加载时,会检查 OkHttpClient 的完全限定类名是否可用。如果抛出 ClassNotFoundException,我们就知道用户没有添加 OkHttp,于是回退到 HttpURLConnection。PlacesHttpClient 是包装以上两种实现方式的公共接口,因此在整个代码库中,这两种实现方式可以交换使用。JSON 解析也采用了同样的方法,Gson 可选择性地作为依赖包含在库中。
如果性能表现与库的大小之间的权衡系数很大,这个方法确实不错。但是,如果回退的实现方式比较困难(比如 JSON 解析就是这种情况),笔者建议你先使用外部库来节省时间,在后续的版本中再考虑添加回退实现。
笔者在前文中提到,你应该对库中包含的功能做出明智的选择。如果某个功能几乎所有用户都不需要,最好将其除去,而且这里也没有必要使用前面提到的第一种可选择性依赖。再次以 Retrofit 为例,在 2.x 版本 中,使用 REST 调用来响应这个功能,不再作为核心库的一部分提供给用户,而是移到一个单独的模块上,并作为 Retrofit 的 maven 构件发布 。
同样地,不同的响应转换器也被拆成了独立的依赖。例如,Retrofit 用户想要转换一个 JSON 响应,而且已经依赖于 Gson,他们可以在 build.gradle 文件中添加以下依赖:
dependencies {
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}

而那些使用其他 JSON 库(比如 Jackson )的用户,或者需要解析其他数据格式(比如 XML 或 protocol buffers)的用户,也可以采用这种方式添加自己需要的依赖,而且避免通用型依赖带来的额外负担。与此同时,核心库也不会被这些附加功能干扰,可以专注于需要解决的主要问题。

‘玖’ 关于Android开发,现有一个引用库和一个主工程,引用库能使用主工程的类吗

要么就全部一个工程,要么把公共的都放在单独的库里,activity也可以作为库。

阅读全文

与android库相关的资料

热点内容
游戏aoi算法 浏览:842
phpmysqlint 浏览:910
怎么从appstore商城买东西 浏览:182
大秀直播平台源码 浏览:418
java视屏 浏览:932
电脑中如何给程序加密 浏览:238
java排序容器 浏览:942
职称证书在哪个app下载 浏览:362
四九算法算男女 浏览:659
javawindows8 浏览:496
2021世界程序员节 浏览:484
php翼支付 浏览:882
盈通服务器ip地址 浏览:789
3des算法的c语言实现 浏览:873
网上怎样购买服务器地址 浏览:813
新氧app都在哪个城市 浏览:731
十二大加密货币图片 浏览:315
数据库日志自动压缩 浏览:929
手机表格文档用哪个app 浏览:77
找人开发app的公司怎么样 浏览:652