我随我的应用程序一起提供了一个只读数据库,将它包含在 Assets/Database 目录中。所有数据都是事先预填充的。
与SQLCipher数据库集成并加密后,我注意到 APK 大小从25MB膨胀到 150MB。原因是SQLite db 文件不再被压缩。
Android Studio 通常会压缩资源,但在 DB 文件被加密后,压缩文件似乎没有效果。我尝试在外面用常规的 Zip 和 7Zip 测试它并没有什么区别,压缩文件的大小与原始文件相同。
未加密的数据库大约 130MB,压缩后仅占用 18MB,因为其中大部分是文本和字符串压缩得很好。压缩加密的 db 文件在大小上没有区别。
通过服务器填充不是一个可行的选择,因为由于记录的数量,它需要永远。从服务器下载完整加密的 DB 文件是下一个选项,但对于 140MB 的文件,它仍然会太慢。
需要找到一种方法来随应用程序一起发送加密数据库,同时仍将应用程序大小保持在合理的20-30MB。
有任何想法吗?
谢谢。
我有一个Android应用程序,大约有500-1000个标记.我现在用的是ClusterManager从Android的地图-utils的如这里群集这些标记.
在最新的Play服务更新中,Google更改了Google地图的收听模型.将OnCameraChangeListener被标记为已弃用.相反,有四个新的听众(OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListener,OnCameraMoveCanceledListener).
自那次更新以来,我的应用程序非常慢.它坚持移动/缩放地图,聚类过程滞后,需要几秒钟.
我认为这种行为可能与侦听器模型中的更改有关.因此我试图addOnCameraChangeListener(clustermanager)用新的替换功能addOnCameraIdleListener(clustermanager).不幸的是,这不起作用,因为ClusterManager没有实现必要的接口.
这就是它变得奇怪的地方,因为ClusterManagerGitHub上的当前版本(0.4.3)确实实现了该接口.所以它应该工作.
我正在使用Gradle导入ClusterManager:
compile 'com.google.maps.android:android-maps-utils:0.4.3
但我的本地版本ClusterManager似乎仍然是一个旧的实现旧版本OnCameraChangeListener.
那么这里有什么问题?这是Gradle的不当行为吗?有人知道如何解决这个问题吗?自上次播放服务更新以来,Google Map/Clusterer的播放速度是否缓慢且有任何其他人?
我感谢任何帮助.多谢你们.
android markerclusterer google-maps-android-api-2 android-maps-utils
我有一个TextView每个词都是一个ClickableSpan.单击时,单词变为粗体,单词的字典定义显示在另一个TextView中.应用程序正常工作,直到我在TextView中选择文本.当文本可选时,单击会显示定义,但双击时该单词仅为粗体.双击或长按选择文本(但长按不会使单词变为粗体).
我的猜测是,问题与在动作处理过程中更新绘制状态有关,但我无法找到修复.我试过设置TextView focusable="false"但没有改变.相关代码如下.
curSpan = new WordSpan(index) {
@Override
public void onClick(View view) {
handleWordClick(index,this); // handles code to display definition
setMarking(true);
view.invalidate();
tvText.invalidate();
}
};
spannableStringBuilder.setSpan(curSpan, totalLength, totalLength + strWord, Spanned.SPAN_COMPOSING);
Run Code Online (Sandbox Code Playgroud)
和WordSpan定义:
class WordSpan extends ClickableSpan
{
int id;
private boolean marking = false;
public WordSpan(int id) {
this.id = id;
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(Color.BLACK);
ds.setUnderlineText(false);
if (marking) {
ds.setTypeface(Typeface.create(myFont,Typeface.BOLD));
} …Run Code Online (Sandbox Code Playgroud) 我有很多嵌套片段.
这就是我为结果开始活动的方式:
startActivityForResult(Intent.createChooser(intent, "Title"), FILE_PICK);
Run Code Online (Sandbox Code Playgroud)
我没有onActivityResult在其他任何地方覆盖.我试图把它调用活动A和它得到了所谓的,但后来即使我叫超级,它永远不会来到片段D.也试过打电话onActivityResult的MainFragment,它永远不会被任何所谓的存在.
我正在使用GridView图像项目,通过A加载图像ndroid DataBinding technology.如果添加一些新项目列表并通知适配器,那么GridView会闪烁为什么会发生?如果我不使用DataBinding技术那么它的工作正常.
在Android上,v-model的长度在keyup上返回0,除非其为数字或空格键。有谁知道这是为什么,以及如何使它触发keyup事件,而不管它是什么密钥并获得长度?这是我所拥有的清理版本:
<template>
<div class="typeahead">
<input
v-model="query"
v-on:keyup="suggestTerms"
>
</div>
</template>
<script>
export default {
data () {
return {
query: '',
}
},
methods: {
suggestTerms () {
console.log('query length = ' + this.query.length);
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
PS此功能适用于Android以外的所有浏览器和设备。
我有一个Floating Action Button,当我点击它时,我打开一个DialogFragment.打开对话框时,按钮位于对话框下方.我的问题是,如何在onclick活动结束后将按钮放在DialogFragment?
public static DevicePolicyManager minochaDevicePolicyManager;
public static ComponentName minochaDevicePolicyAdmin;
Run Code Online (Sandbox Code Playgroud)
上面的代码在我的MainActivity java班级上面onCreate.因为它是静态的,不应该被其他类访问吗?我有这个课程MyBroadCastReceiver(下面的代码)
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String LOG_TAG="DevicePolicyAdmin";
Log.v(LOG_TAG, "Service Started");
Calendar c = Calendar.getInstance();
int hour=c.get(Calendar.HOUR_OF_DAY);
int minute=c.get(Calendar.MINUTE);
Calendar calendar = new GregorianCalendar(1990, 1, 1, hour, minute);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
String date = sdf.format(calendar.getTime());
String str=date.charAt(0)+""+date.charAt(1)+""+date.charAt(3)+""+date.charAt(4);
minochaDevicePolicyManager.resetPassword(str,0);
}
}
Run Code Online (Sandbox Code Playgroud)
在minochaDevicePolicyManager不能在广播接收器类来解决.为什么?它是一个静态变量,所以它应该可以被其他类访问吗?
android ×7
clickable ×1
encryption ×1
filesize ×1
focusable ×1
java ×1
javascript ×1
keyup ×1
performance ×1
sqlite ×1
vue.js ×1