我想知道是否和如何可以在dalvik中dynamic加载dex或class文件,我写的一些quick'n'dirtytesting函数是这样的: public void testLoader() { InputStream in; int len; byte[] data = new byte[2048]; try { in = context.getAssets().open("f.dex"); len = in.read(data); in.close(); DexFile d; Class c = defineClass("net.webvm.FooImpl", data, 0, len); Foo foo = (Foo)c.newInstance(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated […]
我正在使用我的应用程序的支持库。 在我的FragmentActivity我使用AsyncTask从互联网上下载数据。 在onPreExecute()方法中,我添加一个片段,并在onPostExecute()方法中再次删除它。 当方向改变时,我得到了上述例外。 请看看细节: private class onFriendAddedAsyncTask extends AsyncTask<String, Void, String> { DummyFragment dummyFragment; FragmentManager fm; FragmentTransaction ft; @Override protected void onPreExecute() { Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPreExecute"); dummyFragment = DummyFragment.newInstance(); fm = getSupportFragmentManager(); ft = fm.beginTransaction(); ft.add(dummyFragment, "dummy_fragment"); ft.commit(); } @Override protected void onPostExecute(String result) { Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPostExecute"); ft = fm.beginTransaction(); ft.remove(dummyFragment); ft.commit(); } @Override protected […]
我怎样才能释放android-library项目的Jar包装? 我发现,classes.jar位于build/bundles/release/classes.jar ,我想这是正确的Jar包(包含*.class文件)。 有没有官方的方式,把图书馆发布成JAR而不是AAR? 编辑 我使用Gradle发布Maven构件,并且想要将JAR和AAR包一起发布。 所以JAR与签名,md5,清单,… 基于https://chris.banes.me/2013/08/27/pushing-aars-to-maven-central/ apply plugin: 'maven' apply plugin: 'signing' configurations { archives { extendsFrom configurations.default } } def sonatypeRepositoryUrl if (isReleaseBuild()) { println 'RELEASE BUILD' sonatypeRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" } else { println 'DEBUG BUILD' sonatypeRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/" } if(!hasProperty('nexusPassword')) { ext.set('nexusPassword', System.console().readPassword("\n\$ Type in password for Sonatype nexus account " […]
我一直在使用Phonegap开发一个Android应用程序,现在想在应用程序closures的时候这样做,它仍然可以在应用程序中执行java / js代码。 所以我明白我需要创build一个服务。 如果我在phonegap上创build一个服务插件,我仍然可以执行JavaScript代码或只有Java? 有没有人做这样的事情? 我发现这个讨论,但似乎没有工作: http : //groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6这就是我现在所拥有的。 如果我不能想象出来,我会转而开发原生的,我会问,如果有人曾经这样做过。 我似乎无法find任何类似的phonegap插件。 编辑:我有一个执行Java代码作为服务的应用程序。 但是,当它调用sendjavascript不起作用。 那么有没有办法让JavaScript代码在后台运行,当一个应用程序closures与phonegap? 谢谢
我想了解ListView概念,它是如何工作的,我试图创build我自己的适配器扩展BaseAdapter 。 对于ArrayAdapter实例,有一个notifyDataSetChanged()方法,应该在更新包含所有数据的数组列表之后调用,以刷新ListView 。 但是我创build了我自己的BaseAdapter的子类。 那种方法不适用于我,还是它? 我如何实现这个方法? 基本上,这个方法做了什么,也许我会理解。 在ArrayAdapter情况下,我猜测它看着什么位置的ListView当前正在显示,并检查它是否与ArrayList更新后是否是相同的? 要么… 它说这个方法: 通知附加的观察者,底层数据已经被更改,任何反映数据集的视图都应该刷新自己。 但是它究竟如何刷新自己呢? 有人可以解释一下吗?
我有时(不经常)为我的一个项目得到这个,只有几个类 Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE 如何增加模拟器的存储?
我已经通过Googlelogging了78084号问题 ,关于setMobileDataEnabled()方法不再可以通过reflection来调用。 它是从Android 2.1(API 7)到Android 4.4(API 19)通过reflection来调用的,但是对于Android L和更高版本,即使使用root, setMobileDataEnabled()方法也是不可调用的。 官方的回应是这个问题是“closures”,并且状态设置为“WorkingAsIntended”。 Google的简单解释是: 私有API是私有的,因为它们不稳定,可能会在没有通知的情况下消失。 是的,谷歌,我们意识到使用reflection来调用隐藏的方法的风险 – 甚至在Android出现之前 – 但是你需要提供一个更可靠的答案,如果有的话,可以实现与setMobileDataEnabled() 。 (如果您不满意Google的决定,请login问题78084 ,并尽可能多地将其显示出来,让Google知道他们错误的方式。) 所以,我的问题是:在Android设备上以编程方式启用或禁用移动networkingfunction时,我们处于死路一条吗? 这种来自Google的粗暴的方式不能适应我的生活。 如果你有解决Android 5.0(棒棒糖)及更高版本的问题,我很乐意在这个主题中听到你的回答/讨论。 我已经使用下面的代码来查看setMobileDataEnabled()方法是否可用: final Class<?> conmanClass = Class.forName(context.getSystemService(Context.CONNECTIVITY_SERVICE).getClass().getName()); final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true); final Object iConnectivityManager = iConnectivityManagerField.get(context.getSystemService(Context.CONNECTIVITY_SERVICE)); final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); final Method[] methods = iConnectivityManagerClass.getDeclaredMethods(); for (final Method method […]
我知道一个图像的绝对path(比如,/sdcard/cats.jpg)。 有没有什么办法可以为这个文件的内容uri? 其实在我的代码我下载一个图像,并保存在一个特定的位置。 为了在ImageView中设置图像,我使用path打开文件,获取字节并创build一个位图,然后在ImageView中设置位图。 这是一个非常缓慢的过程,相反,如果我可以得到的内容uri,那么我可以很容易地使用方法ImageView.setImageUri(uri)
我是Android新手,我正在做一个简单的应用程序来获得一些基本的经验。 我的应用程序非常简单,包括广播接收器和其他一些活动。 这两个组件都使用单个数据库,所以理论上可能会同时尝试访问数据库。 目前我只是简单地实例化db对象(这是一个SQLite数据库帮助类),每次我需要它,并执行所需的操作:查询,插入等 从我在这里和其他一些文档中读到的,这有一个问题,即在数据库被并发访问的情况下,获得一个“数据库locking”exception,所以更好的方法是有一个这个数据库对象的实例,所以所有组件始终使用相同的db连接。 上述推理是否正确? 单身人士是否会成为一个足够好的解决scheme呢? 我知道一些纯粹主义者可能会反对,但请注意,这是一个相当简单的应用程序,所以我可以负担得起的事情,我不会在其他情况下。 否则,更好的select是什么? 我已经阅读过关于使用内容提供者的内容,但是这对我来说太多了,除此之外,我不想与其他活动分享数据。 我确实看过这篇文章 ,发现它相当有帮助。
我正在阅读Facebook Developers的开发指南 它说我必须使用keytool来导出我的应用程序的签名,如: keytool -exportcert -alias androiddebugkey -keystore〜/ .android / debug.keystore | openssl sha1 -binary | openssl base64 我不知道如何findkeytool来运行它。 我试图打开一个Windows命令提示符并粘贴上面的命令,但它没有工作。