最近项目终于要上线了,于是准备对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...
尽量不要使用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消息推送我们不得不大费周折。本文就是用来和大家共同...
在开发应用的时候,很多时候都会涉及大量图片的加载和高精度图片的加载,这两种操作都是会导致应用程序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
参考资料:【android ndk】macos环境下Android Studio中利用gradle编译jni模块及配置:http://demo.netfoucs.com/ashqal/article/details/21869151ANDROID STUDIO, GRADLE AND NDK INTEGRATION:http://ph0b.com/android-studio-gradle-and-ndk-integration/Gradle Plugin User Guide:http://tools.android.com/tech-docs/new-build-system/user-guideNew Build System:http://tools.android.com/tech-docs/new-build-system实践...
问题如下描述: 关于 Android 中ScrollView中带有ListView 或者是Gridview的子视图的问题,在第一次加载的时候,会使得ScrollView 不在顶端。会往下移动,这个是因为其子视图抢占了焦点。 解决这样的问题,只要重写两个方法 : pasting 这样的话,第一次加载的时候就将ScrollView牢牢的锁在了第一。当用户交互的时候,就可以恢复正常。 原文:http://www.cnblogs.com/wsfjlagr/p/4422627.html
ADB server didn‘t ACK 这个问题会困恼很多的新手朋友,我以前刚开始做Android的时候也遇到过这个问题,不过自己百度,google啥的,也不知道怎么就给解决了,看到群里很多新手朋友都会问这个问题,说实话我也没有一个解决这个问题的终极方法(百试百灵的那种,哈哈),自己没遇到也没有认真的去对待他,今天,就是在今天,我打开Eclipse连上手机,准备调试程序,出现如下的信息The connection to adb is down, and a severe error...
来自:https://jingyan.baidu.com/article/e9fb46e170287a7520f7665c.html Android studio 是目前android公司主推的一款开发工具,相比较以前eclipse,它自己内部就集成了SDK等,方便开发。这几天杰瑞教育学员也尝试从官网下载了一个android studio进行开发,但是在安装以及配置过程中遇到了几个问题,接下来与大家分享一下:方法/步骤 问题一 在安装的时候最好是按照它原来的路径安装,不要修改路径。我修改了路径后出现了一...
实现以上效果需解决1选择苹果时并不是所有的苹果都被选中2解决如果是几千条数据,等大数据带来的程序崩溃问题3实现添加头部和脚部4全选和反选java源码部分FruitAdapterpublicclassFruitAdapterextendsBaseAdapter {private List<Fruit> mFruits;private LayoutInflater Inflater;privateboolean[] mManagerAllCheckBox;publicFruitAdapter(LayoutInflater Inflater, List fruits) {this.Inflater = Inflater;this.mFruits = fruits...