此处将为大家介绍关于为Android项目选择ORM的详细内容,并且为您解答有关最低API级别7的相关问题,此外,我们还将为您介绍关于AndroidAppCompat需要API级别11、AndroidB
此处将为大家介绍关于为Android项目选择ORM的详细内容,并且为您解答有关最低API级别7的相关问题,此外,我们还将为您介绍关于Android AppCompat需要API级别11、Android BROWSABLE意向API级别、Android Calendar Provider API级别、Android Call需要API级别13(当前最小值为10):android.view.Display #getSize的有用信息。
本文目录一览:- 为Android项目选择ORM(最低API级别7)
- Android AppCompat需要API级别11
- Android BROWSABLE意向API级别
- Android Calendar Provider API级别
- Android Call需要API级别13(当前最小值为10):android.view.Display #getSize
为Android项目选择ORM(最低API级别7)
我目前有一个应用程序,其主要性能问题是使用由JSON响应组成的基于文件的数据库。
我想重写我的应用程序以使用SQLite数据库功能。
由于我很懒,所以我想使用某种ORM。
到目前为止,我只发现了两个大型ORM库:
- ORMLite
- greendao-ORM
- DB4O
- ActiveAndroid
我的主要目标是尽可能 提高数据处理性能
但是我发现这些库有两个可能的问题。
ORMLite使用 批注 ,由于此错误,这是 蜂巢前的 大 性能问题
GreenDAO正在使用某种代码生成器,这会降低我的开发速度,因为我必须编写生成器,然后使用生成的代码。而且我不太喜欢这个主意。
DB4O是JPA,我一直认为它很慢且占用大量内存,因此不适合低端设备(请记住Android API v7)
ad @ChenKinnrot :
估计的负载应足以考虑使用ORM。
在我的情况下, 大约有25-30个唯一表,并且至少有10个表联接(一次2-4个表)。 大约300-500个唯一字段(列)
所以我的问题是:
- 我应该在Android应用程序中使用ORM / JPA层吗?
- 如果是这样,您会建议我使用哪个库? (并且也请添加一些参数)
答案1
小编典典我使用过ORMLite,并在掌握了它之后(几个小时)就发现它很简单,功能强大并且没有引起任何性能问题(在Gingerbread中对HTC欲望和HTCHero进行了应用测试)。
我将在需要使用数据库的任何项目中再次使用它。
Android AppCompat需要API级别11
<!-- Application theme. --> <style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="actionBarStyle">@style/MyActionBar</item> </style>
所以就像在这里完成的一样:http://developer.android.com/guide/topics/ui/actionbar.html#StyleExample
然而,Eclipse在这里抛出一个错误,并说:
android:actionBarStyle requires API level 11 (current min is 8) themes.xml
我如何使用支持库?
解决方法
<style name="Theme.Styled" parent="@style/Theme.AppCompat.Light"> <!-- Setting values in the android namespace affects API levels 14+ --> <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item> </style> <style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <!-- Setting values in the android namespace affects API levels 14+ --> <item name="android:background">#FFFFFF</item> </style>
然后,您需要在values文件夹中添加以下内容:res / values / styles.xml
<style name="Theme.Styled" parent="@style/Theme.AppCompat.Light"> <!-- Setting values in the default namespace affects API levels 7-13 --> <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> </style> <style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <!-- Setting values in the default namespace affects API levels 7-13 --> <item name="background">#FFFFFF</item> </style>
更多细节
http://android-developers.blogspot.in/2013/08/actionbarcompat-and-io-2013-app-source.html
请注意API级别14的更改
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
到API级别7-13
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
Android BROWSABLE意向API级别
在Android 2.3(API级别10)和更早版本上,是否有不同的步骤将Android活动注册为可浏览的意图?
我已经使用使用自定义方案的意图过滤器设置了一个Activity:
<intent-filter>
<action name="android.intent.action.VIEW"/>
<category name="android.intent.category.DEFAULT"/>
<category name="android.intent.category.broWSABLE"/>
<data scheme="@string/myCallbackProtocol"/>
</intent-filter>
在运行2.3且SDK模拟器设置为2.3的物理设备上,浏览器应用程序使用我的自定义协议将链接定向到该应用程序.
但是,如果我将模拟器缩小到2.2或2.1,则浏览器不会重定向,而是指示找不到服务器.我没有运行这些API级别的实际设备.
我想发布我的应用程序,使其与运行2.1及更高版本的设备兼容.我以为这应该是可能的吗?根据Android docs Intent.CATEGORY_broWSABLE从1.0开始可用.
谢谢!
解决方法:
我使用broWSABLE没有问题,至少可以追溯到2.1.但是,我尚未实现自定义方案,更不用说在字符串资源中定义了一个. Here is a sample project演示了broWSABLE的使用.
Android Calendar Provider API级别
我们正在开发一个Android日历应用程序.问题是我们想获取其他日历的事件并与其他人共享我们的事件.如我所读,这是由内容提供商实现的.
问题是日历内容提供者要求的API级别是API 14,我们需要在API 7(Android 2.1)中使用它.我见过在Android 2.1中可以做到这一点的应用程序.
我们如何实现这一目标?
解决方法:
日历提供者在那里,但是在API级别14之前API不公开,并且权限可能因设备而异.以下是一些示例:Is there a way to access the calendar’s entries without using gdata-java-client?
Android Call需要API级别13(当前最小值为10):android.view.Display #getSize
Point dims = new Point(); if (android.os.Build.VERSION.SDK_INT >= 13) { mWindowManager.getDefaultdisplay().getSize(dims); } else if (android.os.Build.VERSION.SDK_INT < 13) { dims.x = mWindowManager.getDefaultdisplay().getWidth(); dims.y = mWindowManager.getDefaultdisplay().getHeight(); }
但这给了我错误和警告:
Call requires API level 13 (current min is 10): android.view.display#getSize The method getWidth() from the type display is deprecated
They say to change the manifesto(或here)但为什么上面这个不适用于编译器?难道我不能摆脱10到18的api范围吗?
解决方法
将代码段拉到单独的方法并向其添加以下注释:
@TargetApi(13) @SuppressWarnings("deprecation")
请注意,if的if部分是多余的.简单的其他就够了.
关于为Android项目选择ORM和最低API级别7的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android AppCompat需要API级别11、Android BROWSABLE意向API级别、Android Calendar Provider API级别、Android Call需要API级别13(当前最小值为10):android.view.Display #getSize的相关信息,请在本站寻找。
本文标签: