- 博客(28)
- 资源 (2)
- 收藏
- 关注
转载 Android如何防止apk程序被反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难
2015-02-14 17:12:45 278
转载 反编译apk
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)
2015-02-14 17:07:37 261
转载 Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。 那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少
一、软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。
2015-02-14 15:39:50 560
转载 Android_Bitmap_图片的二次采样并生成缩略图
1.Bitmap概述Android系统支持几种图片(.png (preferred), .jpg (acceptable), .gif (discouraged)), 其中Bitmap位图#ffffffff,包括图片透明度Alpha和RGB,图片质量很好,每一个像素位占4个字节,如果图片很大将会占据很大的内存空间。存储在SDCard的image很小,加载进内存可能就会很大。因此,对bi
2015-02-14 15:33:34 355
转载 Android开发优化之——对界面UI的优化(1)
在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分
2015-02-14 15:25:57 314
转载 Android开发优化之——从代码角度进行优化
1)静态变量引起内存泄露在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类相关的变量,它的生命周期是从这个类被声明,到这个类彻底被垃圾回收器回收才会被销毁。所以,一般情况下,静态变量从所在的类被使用开始就要一直占用着内存空间,直到程序退出。如果不注意,静态变量引用了占用大量内存的资源,造成垃圾回收器无法对内存进行回收,就可能造成内存的浪费。先来看一段代码,这段代码
2015-02-14 15:01:31 250
转载 使用软引用和弱引用讲解
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(Refe
2015-02-14 14:41:44 437
转载 解决Android加载图片时内存溢出的问题
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的so
2015-02-14 14:11:50 266
转载 浅谈android的selector背景选择器(ListView/GridView)
首先android的selector是在drawable/xxx.xml中配置的。先看一下listview中的状态:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。drawable/list_item_bg.xml
2015-02-14 13:55:23 761
转载 Android中View转换为Bitmap及getDrawingCache=null的解决方法
1.前言 Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片;Coverflow中需要把一页一页的view转换为Bitmap、以便实现复杂的图形效果(阴影、倒影效果等);再比如一些动态的实时View为便于观察和记录数据、需要临时生成静态的Bitmap。2.实现方法 1)下面是笔者经常用的一个转换方法
2015-02-14 11:31:18 277
转载 得到ImageView的图片,压缩成PNG,并得到二进制流数据
byte[] img_data;//设置图片ImageView imgExtendImageView1 = new ImageView(mContext);imgExtendImageView1.setImageResource(R.drawable.test);//设置尺寸imgExtendImageView1.measure(MeasureSpec.makeMeas
2015-02-14 11:25:59 302
转载 屏幕适配经验总结
一、细说layout_weight于是就有了现在最为流行的0px设值法。看似让人难以理解的layout_height=0px的写法,结合layout_weight,却可以使控件成正比例显示,轻松解决了当前Android开发最为头疼的碎片化问题之一。先看下面的styles(style_layout.xml)xml version="1.0" encoding="utf
2015-02-13 17:41:40 301
转载 在一个应用程序中启动另外一个已经安装的应用程序或系统程序
注意 其实这个地方就是我们的Activity之间的跳转。我们可以通过ComponentName以及Intent的setComponent来实现:在一个应用程序里面启动另外一个已经安装的应用程序或系统程序。下面是一个在一个应用程序里面启动另外一个已经安装的程序,如下: //组件名称,第一个参数是应用程序的包名,后一个是这个应用程序的主Activi
2015-02-13 16:48:13 700
转载 android 中退出程序的两种方式
finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理;当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放。在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭程序,其实大多情况下该应用还在任务里
2015-02-13 16:12:15 311
转载 android Camera 如何判断当前使用的摄像头是前置还是后置
并且有一些功能前后置摄像头上会有所不同。譬如人脸检测,人脸识别,自动对焦,闪光灯等功能,如果前置摄像头的像素太低,不支持该功能的话,就需要在前置摄像头上关掉该 feature.那么是如何判断并切换前后置摄像头的呢?它就是一个 Camera 信息类。它是通过与屏幕的方向是否一致来定义前后置摄像头的。与屏幕方向相反即为 BACK_
2015-02-13 16:03:11 947
转载 SD卡路径问题以及如何获取SDCard 内存
SD卡路径问题以及如何获取SDCard 内存0、获取sd卡路径。1、讲述 Environment 类。2、讲述 StatFs 类。3、完整例子读取 SDCard 内存0、获取sd卡路径 方法一: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); //写死绝对路径,不赞成使用
2015-02-13 14:59:44 496
转载 EditText其最重要的一个属性是 android:inputType
这个属性不仅可以指定键盘的显示类型,还能控制一些其他的操作,其默认属性是 android:inputType="text",也就是普通的键盘框, android:inputType="textPassword"/> 这个是我们的密码框 android:inputType="textEmailAddress"/> 当设置为textEmailAddr
2015-02-13 14:26:31 410
转载 Linearlayout
①android:layout_weigth:这个属性是用来控制子控件占据的比例的。如果一个父控件在摆放了子控件后,还有剩余空间,那么我们可以通过layout_weigth这个属性可以将剩余的空间按比例分配给子控件。注意:layout_weight 瓜分的是父控件的剩余空间,而不是瓜分整个父控件。小技巧:既然layout_weight瓜分的是父控件的剩余空间,那么我们如果要设置子控
2015-02-13 14:07:58 378
转载 ImageView的ScaleType属性
scaleType,这个属性是用来控制我们的图片怎样缩扩或者移动来匹配我们和ImageView本身设置的大小。①fitCenter:这个值指的是,当我这张图片比ImageView大的时候,就会按照比例对图片进行缩放,并将图片居中显示。如果这张图片比ImageView小,那么就会根据比例对图片进行扩大,然后将其居中显示,注意:如果图片分辨率不是两个相等的值,例如480*320,那么因为缩
2015-02-13 13:56:31 350
转载 android:nextFocus 属性介绍
1.默认情况 系统会按照布局从上到下,从左到右的传递focus2.自定义focus传递 通过以下属性设置:Buttonstyle="@style/clockFaceNum"android:text="12"android:id="@+id/button12" android:layout_alignParentTop="true"
2015-02-11 20:18:18 831
转载 Android View.VISIBLE、INVISIBLE、GONE的区别
android view setVisibility():有三个参数:Parameters:visibility One of VISIBLE, INVISIBLE, or GONE,想对应的三个常量值:0、4、8VISIBLE:0 意思是可见的INVISIBILITY:4 意思是不可见的,但还占着原来的空间GONE:8 意思是不可见的,不占用原来的布局空间
2015-02-11 20:14:16 1491
转载 Android中的RequestFocused使用
RequestFocus用来让某个View获得焦点,RequestFocus只能依附于view内部而不能单独使用。使用RequestFocus需注意以下几点: (1)只能用在edittext上,不能用在button上。并且不能用在隐藏的控件上。(2)若有requestFocus()被调用时,后者优先处理。注意在表单中想设置某一个EditText获取焦
2015-02-11 19:44:09 1181
转载 Json数据解析
1:Json是一种轻量级的数据交换方式, 一般情况下 它的数据格式是有两种, 一种就是:依key : value的形式 存在的无序的 jsonObject对象,就是简单地将对象装在 花括号里面 从而实现我们的数据格式。键值对的格式存储。 key和value之间使用冒号:来分割。 key是String格式的数据。 但是我们
2015-02-10 10:06:56 619
转载 常见小错误
Migrate Android Code1:就是我们错误地将工程设置为了lib包。这个时候需要将lib删除 或者ctrl12.Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child根据报错信息提示,ScrollView控件下面必须有且只有一个子布局,不要将
2015-02-09 18:05:03 345
转载 线程池的使用讲解
线程池简介1:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。1、线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务;2、工作线程
2015-02-09 09:37:28 360
转载 创建多线程的方法 以及 几种创建多线程方法的异同点
我们在创建多线程的时候:具体方法如下:1: 需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法这种方法就是我们通过继承的方法 实现我们的多线程的创建 但是集成具有局限性 我们只可以但继承2:实现Runnalbe接口,重载Runnalbe接口中的run()方法。我们实现Runnable接口 来实现我们线程的创建。
2015-02-06 13:59:25 452
转载 TextView的省略号不显示 小bug解决
1:一般情况下 如果是汉字 这个时候 我们直接设置为在xml中:android:ellipsize="end" 省略号在结尾android:ellipsize="start" 省略号在开头android:ellipsize="middle" 省略号在中间android:ellipsize="marquee" 跑马灯如此可实现。2:如
2015-02-02 11:14:24 458
dex2jar最新版
2018-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人