最近遇到 Couldn‘t load jpush175 from loader dalvik.system.PathClassLoader 这样一个问题 它说的是AS不能找到库文件发生在于像Eclipse 嵌入极光推送等 第三方包的情况AS 是不能直接识别这些文件的如果是.jar文件 则需要拷贝到libs文件夹的同事 邮件 有一个add library选项 进行添加 (也可能是 is library选项或其他)如果是.so文件 则需要修改build.gradle android {compileSdkVersion 22buildToolsVersion "22.0.1"
defaul...
版权声明:本文为xing_star原创文章,转载请注明出处!本文同步自http://javaexception.com/archives/100即时通讯IM类App分析这两周对国内陌生人社交领域的App采用的即时通讯方案做了一番调研。大致了解了采用的是什么方案,用的是第三方厂商的,或是自研的?从得到的结果上来看,用户量规模不大的App,用的是诸如融云环信或者是网易云信这样的第三方厂商。soul 下载地址 https://www.wandoujia.com/apps/cn.soulapp.android 分析的...
最近项目终于要上线了,于是准备对App进行混淆和加固, 但项目引入的开源库有点多,混淆时报了一堆错误,在参考了很多资料后,在前人基础上整理了一个常用开源库proguard rules的列表,以后就不用再次折腾了项目git地址: https://github.com/offbye/Android-ProGuardRules参考了 http://mjiayou.com/2015/06/24/third-proguard-rules/版权声明:本文为博主原创文章,转载请保留出处http://blog.csdn.net/offbye原文:http://blog.c...
post方式能解决UI线程阻塞问题,但是代码的可读性较差。一:看程序二:定义AsyncTaskprivate class testTask extends AsyncTask<String, Void, Integer> {protected Integer doInBackground(String... arg0) {try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}int sum = 10;return 10;}protected void onPostExecute(Integer sum) {button2.setText("" + sum);}}执行tasknew testTask().execute()...
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,
因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。
因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source,
decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsset()来完成decode,
无需再使用java层的createBitmap,从而节省了java层...
之前android虚拟机一直都可以直接联网,今天写了一个WebView之后,突然报出了Web page not
available的错误,但是查看虚拟机自带的浏览器,是可以上网的,所以检查还是代码的问题,这里给大家列出一些android开发中使用WebView时需要注意的一些小细节,大家共享。1、首先是出现Web page not available的解决方案:检查AndroidManifest.xml是否添加了权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET"添加方法...
(转载请注明出处:http://blog.csdn.net/buptgshengod) 有的时候当我们调试android程序时,往往因为installfailedinsufficientstorage这个问题而不能将工程文件读入调试机,看似是由于内存空间不足,其实往往我们腾出了空间也不能解决这个问题。为了根本解决这个错误,下面提供一种解决方案。方法非常简单:在AndroidManifast.xml中插入这句话android:installLocation="preferExternal"
具体位置如图
原文:http://blog.csdn....
笔者在搭建好Android环境后,进行Android的SDK更新下载升级,乌龟的速度,更让人生气的是到了85%的进度时,直接timeout,循环3次无果。查阅相关资料,原来是Google的服务器遭遇了天朝的干扰,网络时断时续,所以进行Android的升级总会有很多问题。下面就上面的问题进行图解解决
选择 Android SDK Manager
选择tools--->options
在proxy处填写mirrors.neusoft.edu.cn(当然代理服务器有很多,自己可以随便找)port处填写80记住...
方案一:在activity 中实现onKeyDown @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_MENU) {return true;}if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { this.finish();//处理事件的操作写在这里super.onKeyDown(keyCode, event);return true;}return true;} 方案二:在activity 中实现如下方案@Overridepublic void onBackPressed() {// TODO Auto...
Android的热修复前言:
随着时代的发展,由于公司的项目需要去求变化平凡计划总赶不上变化,H5的高灵活性,开发周期短,更新速度快H5以及一些混合开发越来越被看好,然而主要原因之一:这种混合开发的方式容错率大,更新和修复BUG快.不用发布版本就可以让用户不觉的情况下就更新对应的内容或者BUG,我们不能否认混合开发的快捷,正在此前提下热修复和热更新技术也得到了非常大的发展,不管热修复还是热更新,都是对app的内容或者逻辑变化做出像...
推送功能在手机应用开发中越来越重要,已经成为手机开发的必须。在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折。本文就是用来和大家共同探讨一种Android消息推送的完美解决方案。AD:2014WOT全球软件技术峰会北京站 课程视频发布推送功能在手机应用开发中越来越重要,已经成为手机开发的必须。在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折。本文就是用来和大家共同...
解决方案:当前是根据当前问题场景即竖屏强制更改为横屏的需求而做的改动,基本是hardcode定义的状态,总共修改有效代码行数5行,如果后续有其他需求或者需要更灵活的配置横屏和竖屏,可以采用编译开关生成系统属性的方式来控制,在系统中通过属性来判断当前的屏幕状态以达到灵活目的,可以在本次修改的基础上增加条件判断达到目的,具体修改代码如下图中圈红标识。一、Android Framework Java层的修改:1、WindowManagerService的...
记录这个问题的起因是,在hook时遇到了修改内容长度,超过原长度时,会出现显示不全的问题。比如把nexus 5改成nexus 100,只会显示nexus 1。所以去读了下源码int __system_property_read(const prop_info *pi, char *name, char *value)
{unsigned serial, len;for(;;) {serial = pi->serial;while(SERIAL_DIRTY(serial)) {__futex_wait((volatilevoid *)&pi->serial, serial, 0);serial = pi->serial;}len = SERIAL_VALUE_LEN(ser...
在开发应用的时候,很多时候都会涉及大量图片的加载和高精度图片的加载,这两种操作都是会导致应用程序OOM(OutOfMemory)的问题发生,合理的图片加载和图片内存管理就是必须解决的问题,以下将提供一个比较完善的技术方案,解决这两个问题。首先,我们必须明确为什么会发生OOM(OutOfMemory)的问题,其原因就是因为在APP运行过程中,所使用的系统内存超出了当前APP的最大可用内存,就发生了OOM的问题。下面,我们来估算一下在一台中高...
主要是由于调试的环境中已有一个同名的Provider存在。解决方法是修改AndroidManifest.xml中的就在你AndroidManifest.xml中,全局搜索Provider ,有多少个Provider,就确定多少个,保证这些Provider的android:authorities="***" 都和你原来的包里的值不一样。 原文:https://www.cnblogs.com/shoneworn/p/8658784.html