安卓开发
安卓开发笔记和教程
老码农zhuli
自娱自乐的代码人!GIT:https://github.com/zhuli
展开
-
安卓开发44:解决 INSTALL_FAILED_UID_CHANGED 等问题
apk无法卸载,一般可以下面的方法试一下:1. 删除/data/app/(filename) 文件夹下的apk包2. 删除/system/app/(filename) 文件夹下的apk包3. 将/data/system/packages.xml文件pull出来删除里面相关的包信息,然后push上去4. 重启后生效原创 2013-10-10 17:50:16 · 2645 阅读 · 0 评论 -
安卓开发43:关于签名
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数转载 2013-10-10 15:25:43 · 1260 阅读 · 0 评论 -
安卓开发42:lauchMode Activity的启动模式
最近在做东西的时候,发现有时会出现两个相同的Activity,本来从Act_A跳转到Act_B,那么按下返回键的时候正常情况下会返回到Act_A,但按下返回键之后居然还是Act_B,这问题一开始还让我纳闷了半天,不过了解了关于Activity的LaunchMode之后就豁然开朗了,在此留个笔记。 在Android 2.3中Activity的启动模式有4种,分别是:Standard转载 2013-09-24 14:46:41 · 1653 阅读 · 0 评论 -
安卓开发41:状态保存 Bundle savedInstanceState
经常会出现用户按到home键,退出了界面,或者安卓系统意外回收了应用的进程,这种情况下,使用Bundle savedInstanceState就可以用户再次打开应用的时候恢复的原来的状态。看一段代码:package com.example.test.com;import android.app.Activity;import android.os.Bundle;imp原创 2013-09-24 14:19:58 · 10995 阅读 · 1 评论 -
安卓开发40:使用startForeground让android服务前台运行
最近在使用android 4.1系统的时候,发现在手机休眠一段时间后(1-2小时),后台运行的服务被强行kill掉,有可能是系统回收内存的一种机制,要想避免这种情况可以通过startForeground让服务前台运行,当stopservice的时候通过stopForeground去掉。以下是android官方描述:Running a Service in the Foreground转载 2013-09-22 18:53:52 · 2611 阅读 · 0 评论 -
安卓开发39:安卓绘制过程
来源:http://blog.csdn.net/qinjuning 前言: 本文是我读《Android内核剖析》第13章----View工作原理总结而成的,在此膜拜下作者 。同时真挚地向渴望了解 Android 框架层的网友,推荐这本书,希望你们能够在Android开发里学到更多的知识 。 整个View树的绘图转载 2013-09-16 10:22:01 · 1333 阅读 · 0 评论 -
安卓开发38:安卓的滚动条相关属性
android:scrollbars设置滚动条显示。none(隐藏),horizontal(水平),vertical(垂直)android:scrollbarTrackVertical设置垂直滚动条背景(轨迹)的drawable注意直接设置颜色值android:scrollbarTrackHorizontal设置水平滚动条背景(轨迹)的色drawable(如颜色原创 2013-09-13 08:50:10 · 6219 阅读 · 1 评论 -
安卓开发37:自定义的HorizontalScrollView类,使其pageScroll的时候焦点不选中
自定义一个HorizontalScrollView类,主要为了让这个HorizontalScrollView不能鼠标点击,不能左右按键,并且没有焦点。public class ImageMoveHorizontalScrollView extends HorizontalScrollView { private boolean mSmoothScrollingEna原创 2013-09-12 17:31:00 · 2354 阅读 · 0 评论 -
安卓开发36:layout对齐属性总结
android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below 将该控件的顶部至于给定ID的控件之下 android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐 android原创 2013-09-12 13:43:26 · 1773 阅读 · 0 评论 -
安卓开发35:一些安卓设计经验总结
代码中尽量使用抽象的控件对象比如一个Button对象,设置了一个OnClick的监听。我们可以在代码中转成View对象。这样以后就算这个Button改成ImageView或者TextView,都不需要更改代码 //虽然是一个Button对象,但是我们转换成View对象 //就算以后这个对象改成TextView等都不需要修改现在的代码 View b原创 2013-09-10 13:39:30 · 1899 阅读 · 1 评论 -
安卓开发34:ImageView API
ImageView译者署名: cnmahj、农民伯伯译者博客:http://blog.toolib.net/cnmahj版本:Android 3.1 r1 结构继承关系public classView.OnClickListner extends View java.lang.Objectandroid.view.Viewandroid.widg转载 2013-09-03 20:49:53 · 2303 阅读 · 0 评论 -
安卓开发33:HorizontalScrollView 水平滚动 API
用于布局的容器,可以放置让用户使用滚动条查看的视图层次结构,允许视图结构比手机的屏幕大。HorizontalScrollView是一种FrameLayout(框架布局),其子项被滚动查看时是整体移动的,并且子项本身可以是一个有复杂层次结构的布局管理器。一个常见的应用是子项在水平方向中,用户可以滚动显示顶层水平排列的子项(items)。HorizontalScrollView不可以和ListVi转载 2013-09-02 09:44:58 · 2041 阅读 · 0 评论 -
安卓开发32:Paint 画笔
关于Paint 画笔画笔一般在绘制View的时候会用到。绘制界面首先需要调整画笔,然后绘制到画布上面,才能在界面浏览。之前我们做过一个自定义View,自定义View中就使用了画笔。Paint常用方法setAntiAlias: 设置画笔的锯齿效果。 setColor: 设置画笔颜色setARGB: 设置画笔的a,r,p,g值。 setAlpha: 设置Alpha值 set原创 2013-08-30 19:14:53 · 1597 阅读 · 0 评论 -
安卓开发31:异步加载图片框架ImageLoader的使用
需要下载ImageLoader.jar下载地址:http://code.google.com/p/libs-for-android/wiki/ImageLoader使用:MainActivity.javapackage com.example.test.com;import java.io.File;import android.app.Activity;impo原创 2013-08-27 20:08:11 · 12786 阅读 · 0 评论 -
安卓开发29:获取网络状态工具类
package com.todoo.android.app.utils;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;import android.content.Context;imp转载 2013-08-26 09:59:07 · 1581 阅读 · 0 评论 -
安卓开发30:AsyncTask的用法
在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如转载 2013-08-27 14:35:25 · 1406 阅读 · 0 评论 -
安卓开发28:自定义View类
自定义View类通过自定义View类,可以自定义复杂的,按照自己需求的控件。一个简单的例子mainActivity.java 这个里面就是最普通的代码,但是给自定义的控件加上了一个onclick的时间package com.example.test.com;import android.app.Activity;import android.os.Bundle;i原创 2013-08-24 16:18:11 · 2005 阅读 · 0 评论 -
安卓开发27:图片处理工具类
import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.graphics.Bitmap;import an转载 2013-08-24 13:54:33 · 1474 阅读 · 0 评论 -
安卓开发26:安卓-九宫格实现
最近在做一个电视上的输入框,发现用全键盘很难输入,因为电视只有遥控器,左左右右选择很不方便,所以就在页面上实现了一个固定的键盘,T9形式的,先上图:技术要点:1.利用popupWindow实现弹出层2.对每个按键设置相同的onClick事件,方便统一处理代码:activity_main.xml<LinearLayout xmlns:andro转载 2013-08-23 21:38:03 · 1835 阅读 · 0 评论 -
安卓开发25:碎片 Fragment使用
Fragment说明为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragment。fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观原创 2013-08-23 19:28:56 · 2956 阅读 · 0 评论 -
安卓开发24:FrameLayout布局
FrameLayout布局FrameLayout是五大布局中最简单的一个布局。FrameLayout布局中的元素会根据先后顺序重叠起来。利用FrameLayout布局元素重叠的特性,我们一般可以做一些层的隐藏和显示,以及在一个图片上放置另外一个小图标等这样的功能。看代码:<FrameLayout xmlns:android="http://schemas.android.co原创 2013-08-23 14:32:37 · 3252 阅读 · 0 评论 -
安卓开发23:Service详细解读
关于ServiceService说明:Service是android 系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。原创 2013-07-17 14:33:25 · 1329 阅读 · 0 评论 -
安卓开发22:广播机制
安卓的广播机制:说明:广播广播,其实就是一个地方将信息传播出去,只要有广播接收器的地方都能同时接收到信息。安卓的广播机制一般可以针对应用内的广播,也可以针对跨应用广播。例如电池的事件,电池快没电的时候,会发送一个广播,如果你的应用中有接收这个广播,则就会调用广播接收的程序。看一个图:一些观点:在Android 中如果要发送一个广播必须使用sendBroadCast原创 2013-07-15 10:31:39 · 3017 阅读 · 0 评论 -
安卓开发21:深入理解Handler
Handler相关说明:主要接受子线程发送的数据, 并用此数据配合主线程更新UI。解释:安卓的UI线程(即OnCreate函数创建的线程)是线程非安全的。也就是说,在UI线程中,使用sleep这样的函数会导致整个线程延迟,但是我们在安卓开发中,往往会经常遇到一些延迟比较厉害的操作,(例如通过HTTP获取数据信息)如果放在主线程中,则会影响UI界面的渲染。但是如果另外新开一个线程,则由于UI原创 2013-07-12 12:43:13 · 3295 阅读 · 1 评论 -
安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
AlphaAnimation 透明效果实现:activity_main.xml中仅仅是一个简单的图片,下面的例子都会使用这个xml:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"原创 2013-07-11 02:54:25 · 9506 阅读 · 2 评论 -
安卓开发19:常用安卓开发技巧汇总
常用安卓开发技巧汇总经常用的一些小技巧都会记录在这边API权限错误提示解决方法:报这么一个错误:Call requires API level 11 (current min is 8): android.animation.ObjectAnimator#ofFloat主要原因是 AndroidManifest.xml中的API权限等级不够: <uses原创 2013-07-10 15:27:33 · 6873 阅读 · 6 评论 -
安卓开发18:动画之View Animation
View Animation:主要能实现:Scale伸缩,Rotate旋转,Translate移动,Alpha透明度变化.先看一个xml的一些属性表格,下面都需要用到:属性说明android:duration设置动画播放的时间android:startOffset设置动画的开始播放时间andorid:int原创 2013-07-09 15:31:35 · 1259 阅读 · 0 评论 -
安卓开发17:动画之Drawable Animation
Drawable Animation:帧动画,说白了和GIF图片差不多。通过Drawable Animation就可以来模拟一些动画效果了。首先我们在res文件夹下创建 anim 文件夹,主要放置动画效果的xml文件。并且创建一个test_anim.xml的文件:(需要有图片文件)<animation-list xmlns:android="http://schemas.and原创 2013-07-09 14:56:38 · 1449 阅读 · 0 评论 -
安卓开发16:Spinner 下拉列表控件
Spinner 下拉列表控件创建一个activity_main.xml文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_原创 2013-07-09 14:22:17 · 3237 阅读 · 0 评论 -
安卓开发15:adb命令用法
ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.//连接设备adb connect xxxx.xxx.xxx.xx:xxxx//进入设备adb shell//进入安卓app目录下cd system/app//将一个apk 推送到app目录下adb push //删除apk,需要进入安卓app目录rm xxx.apk//原创 2013-07-08 18:54:09 · 2336 阅读 · 0 评论 -
安卓开发14:WebView使用
WebView就是在安卓中嵌套网页。很实用,也非常简单。直接上代码:首先,使用WebView,需要对网络有访问权限,安卓的AndroidManifest.xml加入:创建一个activity_main.xml的webView:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2013-07-03 17:36:55 · 3005 阅读 · 0 评论 -
安卓开发13:ListView详细解读
占位原创 2013-07-03 09:50:48 · 1723 阅读 · 0 评论 -
安卓开发12:安卓各种事件操作
事件:一般你点击一个按钮,触摸一下屏幕,都是事件。点击,键盘按键按下,鼠标滑过等等。先看一个OnClick 安卓中的Button的点击事件:activity_main.xml:android:onClick="Hello" 定义了一个Onclick的点击事件,点击之后,触发MainActivity中的Hello函数。<RelativeLayout xmlns:and原创 2013-07-01 13:43:50 · 4325 阅读 · 0 评论 -
安卓开发11:操作控件
前几节我们讲了如何布局,如何使用控件。这一节我们主要讲如何操作控件。安卓提供了一个很好的框架,并且内置了相应控件的java组件代码。我们一般通过findViewById方法来获取控件对象。看一段代码:package com.example.androidtest;import android.app.Activity;import android.os.Bundle;im原创 2013-06-26 14:24:19 · 1565 阅读 · 0 评论 -
安卓开发10:常用控件-常用表单级别控件
常用表单级别控件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button and原创 2013-06-26 11:01:37 · 2292 阅读 · 0 评论 -
安卓开发09:常用控件-TextView文本展示
TextView:展示文本信息示例:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextVi原创 2013-06-26 09:34:30 · 2717 阅读 · 0 评论 -
安卓开发08:布局-相对位置布局 RelativeLayout
RelativeLayout:相对位置布局。根据相对的位置来进行布局排放。看一个例子:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fil原创 2013-06-25 16:39:43 · 3296 阅读 · 2 评论 -
安卓开发07:布局-表格布局 TableLayout
TableLayout:TableLayout可以把视图views组织成“行”或“列”。可以使用元素指定表格中的一行。每一行又可以包含一个或多个视图。每行中的每个视图组成了表格的一个元素。每列的宽度,取决于这一列中宽度最大的视图view。看一个例子:<LinearLayout xmlns:android="http://schemas.android.com/apk/res原创 2013-06-25 10:26:40 · 1769 阅读 · 2 评论 -
安卓开发06:布局-线性布局 LinearLayout
LinearLayout把视图组织成一行或一列。子视图能被安排成垂直的或水平的。线性布局是非常常用的一种布局方式。请看一个布局例子:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layo原创 2013-06-24 13:56:40 · 1803 阅读 · 0 评论 -
安卓开发05:Activity之间链接和传递参数
Activity之间链接和传递参数主要通过Intent安卓的一个对象来实现。首先我们创建一个MainActivity:package com.example.androidtest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android原创 2013-06-05 15:36:01 · 2410 阅读 · 0 评论