安卓开发
安卓开发
陈如水
市场经济条件下,每个人都有一个价,你有哪些本事?你值不值这个价?
人生如茶,经历浮沉,经历苦难浸泡,方能长大.
展开
-
Android操作系统共
Android操作系统共分四层,采用层叠式结构。1,Android的四层架构图1)applicaitons :应用程序层(其实就是我们要开发的应用软件)2)application framework :应用框架层(框架就是jar包,api层)这是学习重点,实现接口。学习Android就是学习Android的api。3)第三层:1)libraries:(库 c库) 都是c代原创 2015-04-08 22:58:02 · 471 阅读 · 0 评论 -
加载大图片导致OOM异常 OOM:内存溢出(图片太大导致)
Caused by:java.lang.OutOfMemoryError:bitmap size exceeds VM budget at android.graphics.BitmapFactory.nativeDecodeStream(Native Method); 本身的大小:2.65MB dalvik vm默认:16MB(一个虚拟机实例默认只有16M内存)原创 2015-04-20 23:12:21 · 1878 阅读 · 0 评论 -
抓包工具 Fidder的使用
抓包工具,主要介绍简单实用的Fiddler;Fiddler官网下载地址:http://www.telerik.com/fiddler 下载完成后打开fiddler,注意事项:要确保安装Fiddler的电脑和测试手机在同一局域网内;因为Fiddler只是一个代理工具,需要将手机的代理指向 PC 机,不能互相访问是不行的。使用步骤:1)打开Fiddler菜单栏中的Tools>Fid原创 2016-04-11 16:35:03 · 1087 阅读 · 0 评论 -
java代码设置布局的宽和高
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(dip2px(this,480),dip2px(this,300))mPlayerView.setLayoutParams(lp)通过代码设置布局的宽和高,因为需要的是px(像素),所以需要把dp转化成px。 通过代码设置布局参数。public sta原创 2016-04-12 17:46:48 · 4608 阅读 · 0 评论 -
安卓onKeyDown事件
//监听手机屏幕上的按键 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //如果点击的是后退键 首先判断webView是否能够后退 //如果点原创 2016-04-26 13:38:07 · 65618 阅读 · 4 评论 -
surfaceview
Surfaceview控件SurfaceView:他是一个控件 作用:用来显示动态的画面,mp4 相机 游戏 视频的播放界面 android:id="@+id/surfaceview" android:layout_width="fill_parent"原创 2015-04-20 23:14:28 · 418 阅读 · 0 评论 -
IOC开发框架[@ViewInject] 注解式发开
什么叫IoC,控制反转(Inversion of Control,英文缩写为IoC)1) 一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量,那么你就new出来用;2) IoC的原则是:NO,不要new,这样耦合度太高;你配置个xml文件,里面标明哪个类,里面用了哪些成员变量,等待加载这个类的时候,我帮你注入(new)进去.这样做有什么好处呢?项目分层开发,分为控原创 2016-04-14 17:45:57 · 503 阅读 · 0 评论 -
json使用总结
注意:1)json解析是好事操作,最好不要放到主线程里;2)Json数据到实体模型之间的转化特别容易出错,特别是数据类型,一定要注意;3)JSONArray JSONObject 这两个对象的使用;4)如何把字符串转化成json对象? new JSONObject(str);5)如何获取属性的值? String model = (String) jsonObject原创 2016-04-14 19:31:48 · 2951 阅读 · 0 评论 -
android开发思路、一些想法
Android系统一开始并不是由谷歌研发出来了,Android系统原来的公司名字就叫做Android,谷歌公司在2005收购了这个仅成立22月的高科技企业。 Android体系结构Libraries (库): Android包含一套C/C++库,Android系统的各式组件都在使用。这些功能通过Android应用框架暴露给开发人员.Android Runtime (Android运原创 2016-04-15 09:39:28 · 3930 阅读 · 0 评论 -
APP消息推送内容、推送频率如何选择? (推送率)
app可以实现一个功能,叫做消息推送。通知是能够起到提醒或者唤醒用户的作用的,也是app运营最优质的渠道,运用得当可以帮助产品运营人员更高效地实现运营目标,相反盲目则也将带来反作用。如何打磨一个好的app消息推送策略,对一个app的体验而已至关重要。一丶提醒动作的作用通知是移动操作系统的一个一级入口或者称之。为某个闭环体验的起点,很直观的作用就是notify users,那么就要考虑提原创 2016-04-28 13:00:34 · 8786 阅读 · 0 评论 -
消息推送 “个推集成”
推送:分全局推送和个推; 个推是自动推送,而不需要人工干预,比如收到新的买家订单;根据买家订单, 服务端推送新订单消息到商户的手机上!我们项目中的自定义消息类型: 订单消息、报价消息、新版本更新消息等等。点击通知栏,跳转到对应的消息详情页面。还有一种情况,点击通知栏,跳转到对应的网页,比如微商城。消息传递的两种行为:客户端主动拉去消息;服务器端主动推送消息;透传消原创 2016-04-16 16:51:06 · 4539 阅读 · 0 评论 -
Android 应用:打包(签名文件)、代码混淆、应用加固、发布到应用商店
待完善zhong原创 2016-05-13 16:29:14 · 2847 阅读 · 0 评论 -
PopupWindow的使用
功能:PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。Activity的布局中只有一个按钮,按下后会弹出框,代码如下: button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {原创 2016-05-04 17:57:01 · 671 阅读 · 0 评论 -
Android开发中的mvc、mvp、mvvp模式
常用的模式:mvc、mvp、mvvp不同的模式预示着不同的代码结构和代码拆分方法。代码按照经典的模式去写,让我们的代码更加合理化了,更具备扩展性。就像搭建大楼一样,如果代码乱放,可能狗窝都搭建不出来。a开发人员,你应该把代码写在哪里,怎么调用我架构里面的东西?把代码整合在一起;通过架构限制开发人员,代码不能乱放!一、用户登录的实现:二、MVC模式在安卓中的体现:原创 2016-05-04 17:49:13 · 3007 阅读 · 1 评论 -
应用接入微信支付——移动支付
微信支付集成流程1) 申请获取AppID:wxa9939a2b5942b5482) 下载微信终端开发工具包 就是把libammsdk.jar 导入到项目里面3) 搭建开发环境 AndroidManifest.xml 清单文件配置:权限和注册 android:name=".wxapi.WXPayEntryActivity"原创 2016-05-06 13:10:41 · 767 阅读 · 0 评论 -
ViewPagerIndicate的使用总结
1)在以Module和添加依赖的方式引用ViewPagerIndicate;2)让使用ViewpagerIndicate的activity继承自FragmentActivity;3)书写模板性代码: //实例化控件 @ViewInject(R.id.vp) private ViewPager vp; @ViewInject(R.id.tabPageI原创 2016-05-13 09:47:49 · 1411 阅读 · 0 评论 -
AndroidImageSlider超炫的轮播图效果
在AS中的使用: 1.在build文件中进行配置 compile 'com.squareup.picasso:picasso:2.3.2' compile 'com.nineoldandroids:library:2.4.0' compile 'com.daimajia.slider:library:1.1.5@aar' 2.原创 2016-05-07 21:00:23 · 1388 阅读 · 0 评论 -
Edittext 输入监听,计算价格总额
edt.addTextChangedListener(new OnTextChangeListener()); /** * EditText输入变化事件监听器 */ class OnTextChangeListener implements TextWatcher { @Override public void afterTe原创 2016-05-11 13:08:41 · 1697 阅读 · 0 评论 -
安卓开发代码规范以及命名规范
1)注释模板新建类,自动生成类注释;设置注释模板; /** * Created by ${USER} on ${DATE}. * Project:XunPiGe * Package: com.xunpige.myapplication * Version:1.0 * Author:crs */2)对于尺寸的抽取:dimens.xml文件中3)注释模板新建类,原创 2016-05-13 16:45:59 · 461 阅读 · 0 评论 -
PullToRefresh第三方刷新控件使用总结
1)基本介绍github地址: https://github.com/chrisbanes/Android-PullToRefresh支持ListView,GridView的刷新操作(上拉刷新、下拉刷新);此控件包含很多自定义的选项;当滚动到底部时,可以进行监听;设置自定义的上拉刷新脚;2)api文档: wrapper包装器getRefreshableView()原创 2016-05-13 13:40:20 · 1388 阅读 · 0 评论 -
应用接入支付宝支付——移动支付
最重要的还是流程;重点:关于私钥,java集成的话,私钥要转化成pkcs8格式。-------------------------------------------------------->关键是把官方的demo走通; 官方demo里面有四个参数是空的,把这四个参数填上就可以啦。//商户PIDpublic static final String PARTNER = "**原创 2016-04-14 14:04:44 · 819 阅读 · 0 评论 -
各种 没整理
客户端离用户更近,在技术之余可以更关注产品;服务端更注重数据和并发稳定性。一个商业产品涉及到很多个纬度:战略,产品,技术,运营,市场,商务 等等。开发人员只是做技术这个纬度,而技术又分很多种,从职能上可以分为:开发,测试,UI …. ,开发又可以分为PC端,WEB端,服务端,移动端(iOS,Android)mipmap可以提高系统渲染图片的速度,提高图片质量,减少GPU压力(图形处理原创 2016-04-15 10:01:27 · 510 阅读 · 0 评论 -
Android Support兼容包详解<v4、v7>
Android Support兼容包详解google官方提供了Android Support Library package 系列的包来保证高版本sdk开发的向下兼容性。注意:gradle引用appcompat-v7包的时候就不需要引用v4了,因为v7里默认包含了v4包;compile ‘com.android.support:appcompat-v7:21.0.3’ 中的原创 2016-05-03 18:25:08 · 16777 阅读 · 1 评论 -
AS2.0 :Instant Run(热更新)
问题:构建build项目,需要花大量的时间,而ios开发则不需要这样,怎么破?instant run ,在第一次运行之后,就可以快速的在真机中看见修改后的结果,不仅仅是UI可以直接显示,还包括代码逻辑。全量编译、热更新(只编译修改后的代码)编译运行、即时运行(更快的构建和部署)。使用条件:AS2.0版本及以上;在 android tools bu原创 2016-04-19 22:03:27 · 621 阅读 · 0 评论 -
android开发命名规范
布局文件的命名规范:activity_fragment_item_图片资源的命名规范控件的命名规范:局部变量命名、静态成员变量命名,只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写.驼峰命名法private List listAddress;特别是类的命名规范 Manager Entity 常量命名:只能包含字母原创 2016-05-30 13:31:39 · 447 阅读 · 0 评论 -
如何获取apk的签名信息?
在接入第三方功能时,经常要注册提交apk的签名信息sha1签名?获取apk签名信息的步骤:1)修改apk后缀名为zip,解压得到其中的META-INF文件夹;2)把META-INF文件夹放到C盘根目录下;3)在dos面板中, 敲入命令: keytool -printcert -file C:\META-INF\CERT.RSA 命令,即可获取sha1签名信息———————原创 2016-05-06 18:31:28 · 12576 阅读 · 1 评论 -
Android Studio: 对gradle的理解
Gradle是一种依赖管理工具(为项目添加依赖);它可以对依赖进行管理;还可以进行差异控制;每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是 apply plugin: 'com.android.library' (安卓应用程序、依赖类库两种)主gradle配置文件: // 所使用的java版本 compileOptions原创 2016-04-19 14:18:16 · 488 阅读 · 0 评论 -
使用WebView加载本地html页面,实现与java之间的相互响应
步骤:1)把html页面放置在assets文件夹下(资产文件)2)编写页面布局WebView3)使用WebView加载本地的html页面 webView.getSettings().setJavaScriptEnabled(true);webView.loadUrl("file:///android_asset/service_terms.html");原创 2016-05-19 17:00:56 · 696 阅读 · 0 评论 -
android中CheckBox自定义样式
要实现的效果:1、首先res/drawable中定义编写如下样式: 2、在layout中添加checkbox控件: 其中drwable/btn_check为1中定义的一个文件名称,另外必须将android:button设置为@null。 @drawable/check_true和@drawa原创 2016-05-19 17:10:58 · 693 阅读 · 0 评论 -
图片加载及缓存框架Glide在安卓开发中的应用
1)综合介绍Glide框架2014谷歌推出的;图片加载速度快,用户体验好(最大的优点);需要比较大的内存空间进行图片缓存2)Glide如何导包?compile 'com.github.bumptech.glide:glide:3.5.2'compile 'com.github.bumptech.glide:glide:3.7.0'3)Glide基本用法(非常简单)可以加载本原创 2016-05-06 22:52:34 · 5705 阅读 · 0 评论 -
接口测试总结
目的是:1)移动端与服务器端的交互是否是通畅的;2)服务器端返回的字段是否满足我们的要求;在谷歌浏览器中进行接口测试(唯一的缺点是不能保存session值);有时候需要拼接请求参数:请求地址?变量名=变量值&变量名=变量值;多个请求参数之间使用&分割.使用火狐浏览器进行测试,能够保存session值的。注意事项1) 哪些接口能用,哪些接口不能满足移动端要原创 2016-05-21 11:12:10 · 1056 阅读 · 0 评论 -
项目中所使用的依赖 dependencies
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' //依赖项目 compile 'com.android.support:appcompat-v7:21.0.3' //下拉刷新 compile project(原创 2016-06-04 11:31:45 · 8816 阅读 · 0 评论 -
Imageloader图片加载框架
new RoundedBitmapDisplayer(0) //图片显示:方形,圆角,圆形!原创 2016-05-23 14:02:15 · 565 阅读 · 0 评论 -
Litepal 数据库操作框架的使用 (火)
LitePal是GitHub上一款开源的Android数据库框架.它采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很“轻”,jar包大小不到100k,而且近乎零配置。核心:1)从表中读取到数据,展现给用户;2)把数据存储到表中。特点:1)完全不需要使用sql原创 2016-04-12 16:39:59 · 5151 阅读 · 0 评论 -
流式布局 自定义控件 特别热
package com.example.flowlayout.view;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view原创 2016-05-07 21:10:23 · 1458 阅读 · 0 评论 -
HomeFragment代码
package com.xunpige.myapplication.fragment;import android.content.Intent;import android.os.Bundle;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutM原创 2016-06-13 21:15:50 · 1599 阅读 · 0 评论 -
RecycleView(插件式架构)使用
注意事项:1)使用RecycleView 必须先设置适配器,再设置布局参数,这个顺序不能错。2)强制开发者使用ViewHolder模式,写一个MyViewHolder继承自ViewHolder类。3)在Adapter构造函数里面传递数据:只有三个:上下文、要显示数据。不关注item是否在正确的位置,如何显示; 通过LayoutManager类来控制RecyclerV原创 2016-05-07 20:55:43 · 651 阅读 · 0 评论 -
消息推送业务逻辑处理 “MessageUI”
package com.xunpige.myapplication.ui;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.text.TextUtils;import andro原创 2016-06-13 21:25:54 · 1393 阅读 · 0 评论 -
用户头像选择功能模块
package com.xunpige.myapplication.ui;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory原创 2016-06-13 21:31:51 · 1445 阅读 · 0 评论 -
android sdk 目录结构
1、add-ons这里面保存着附加库,比如GoogleMaps.2、docs这里面是Android SDK API参考文档,所有的API都可以在这里查到(比较少用).3、platforms是每个平台的SDK真正的文件,里面会根据API Level划分的SDK版本,这里就以Android2.2来说,进入后有 一个android-8的文件夹,android-8进入后是Android2.2S原创 2016-07-11 10:59:01 · 806 阅读 · 0 评论