① 用android studio做一个可以运行的小程序,闹钟也行,然后可以连到手机,感谢大神。
环境搭建就不讲了,直接说开发。
小闹钟程序开发中的要点就是:
1、时间选择对话框(TimePicker)
2、获取闹钟管理器并对其进行设置
3、注册广播接收器
掌握了这两点,写程序就很简单了。
1、新建android项目:Alarm,sdk版本选择2.2,Package name:com.lql.activity,Main Activity:Alarm
2、编写界面:直接修改layout中的main.xml文件,代码如下:
Xml代码
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
>
<Button
android:id="@+id/timeBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/time"
android:textSize="20sp"
/>
<Button
android:id="@+id/cancelAlarmBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cancelAlarm"
/>
</LinearLayout>
界面的效果如下:
{
/*(non-javadoc)
*@seeandroid.content.BroadcastReceiver#onReceive(android.content.Context,android.content.Intent)
*/
@Override
publicvoidonReceive(Contextarg0,Intentdata){
Log.d(Alarm.TAG,"thetimeisup,startthealarm...");
Toast.makeText(arg0,"闹钟时间到了!",Toast.LENGTH_SHORT).show();
}
}
这个代码就很简单了,主要是要继 承BroadcastReceiver 这个类,然后重写onRecive方法。onRecive方法在闹钟的时间达到之后会执行,在这里我们可以做自己的事情,比如启动某个程序,或者播放铃声,我这里就是简单的提示一下,使用的是Toast。
5、在android的AndroidManifest.xml文件中注册广播接收器:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
Xml代码
package="com.ql.activity"
android:versionCode="1"
android:versionName="1.0">
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<receiverandroid:name=".AlarmReceiver"android:process=":remote"/>
<activityandroid:name=".Alarm"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-sdkandroid:minSdkVersion="8"/>
</manifest>
核心的配置为<receiver android:name=".AlarmReceiver" android:process=":remote" />,这也是闹钟程序的关键,如果不做这个配置,那么时间到了之后,闹钟将不会提示。
接下来就是到模拟器上测试,运行截图如上图。程序源代码见附件。
② androidstudio运行一个小例子,如图,到底要怎么弄才能用夜神呢在网上找了n多个教程似乎
点击切换到ddms,然后有一个下拉的下箭头,重启reset adb试试看,大部分的原因是已经存在了一个adb无法启动,记得重启
③ 《Android6应用开发案例精解第3版》pdf下载在线阅读全文,求百度网盘云资源
《Android6应用开发案例精解第3版》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1VW8BgUrjThIwJQPrSTIPlw
④ Android游戏开发大全的目录
《android游戏开发大全》
第一篇android游戏开发核心技术
第1章android平台简介2
1.1android的来龙去脉2
1.2掀起android的盖头来2
1.2.1选择android的理由2
1.2.2android的应用程序框架3
1.3android开发环境的搭建6
1.3.1sdk的下载及安装6
1.3.2eclipse集成开发环境的搭建6
1.3.3虚拟设备的创建与模拟器的运行9
1.3.4第一个android程序11
1.3.5android程序的监控与调试14
1.4小结15
第2章android游戏开发之前台渲染16
2.1创建android用户界面16
2.1.1布局管理16
2.1.2常用控件及其事件处理22
2.2图形与动画在android中的实现24
2.2.1简单图形的绘制24
.2.2.2贴图的艺术26
2.2.3自定义动画的播放27
2.3android平台下的多媒体开发30
2.3.1音频的播放30
2.3.2视频的播放33
2.3.3camera图像采集36
2.4小结38
第3章android游戏开发之交互式通信39
3.1android应用程序的基本组件39
3.1.1activity组件39
3.1.2service组件41
3.1.3broadcast receiver组件42
3.1.4content provider组件43
3.1.5androidmanifest.xml文件简介43
3.2应用程序的内部通信47
3.2.1消息的处理者——handler类简介47
3.2.2使用handler进行内部通信48
3.3应用程序组件之间的通信50
3.3.1intent类简介50
3.3.2应用程序组件——intentfilter类简介52
3.3.3示例1:与android系统组件通信53
3.3.4示例2:应用程序组件间通信示例activity部分的开发54
3.3.5示例3:应用程序组件间通信示例service部分的开发56
3.4小结59
第4章android游戏开发之数据存储和传感器60
4.1在android平台上实现数据存储60
4.1.1私有文件夹文件的写入与读取60
4.1.2读取resources和assets中的文件63
4.1.3轻量级数据库sqlite简介65
4.1.4sqlite的使用示例69
4.1.5数据共享者——content provider的使用72
4.1.6简单的数据存储——preferences的使用76
4.2android平台下传感器应用的开发78
4.2.1传感器应用开发流程78
4.2.2常用传感器简介79
4.2.3传感器应用开发示例81
4.2.4使用sensorsimulator模拟传感器变化83
4.2.5使用新版本的api开发传感器应用86
4.3小结88
第5章android游戏开发之网络编程89
5.1基于socket套接字的网络编程89
5.2基于http协议的网络编程93
5.2.1通过url获取网络资源93
5.2.2在android中解析xml95
5.3android平台下的google map95
5.3.1定位类genpoint与显示地图类mapview的搭配使用95
5.3.2位置监听器——locationlistener的使用99
5.4其他网络通信方式101
5.4.1使用wifi进行开发101
5.4.2借助于蓝牙(bluetooth)技术进行开发102
5.5小结102
第6章不一样的游戏,一样的精彩103
6.1射击类游戏103
6.1.1游戏玩法103
6.1.2视觉效果104
6.1.3游戏内容设计104
6.2竞速类游戏104
6.2.1游戏玩法105
6.2.2视觉效果105
6.2.3游戏内容设计106
6.3益智类游戏106
6.3.1游戏玩法106
6.3.2视觉效果107
6.3.3游戏内容设计107
6.4角色扮演游戏107
6.4.1游戏玩法108
6.4.2视觉效果108
6.4.3游戏内容设计109
6.5闯关动作类游戏109
6.5.1游戏玩法109
6.5.2视觉效果110
6.5.3游戏内容设计110
6.6冒险游戏110
6.6.1游戏玩法110
6.6.2视觉效果111
6.6.3游戏内容设计112
6.7策略游戏112
6.7.1游戏玩法112
6.7.2视觉效果113
6.7.3游戏内容设计113
6.8养成类游戏113
6.8.1游戏玩法114
6.8.2视觉效果114
6.8.3游戏内容设计114
6.9经营类游戏115
6.9.1游戏玩法115
6.9.2视觉效果115
6.9.3游戏内容设计116
6.10体育类游戏116
6.10.1游戏玩法116
6.10.2视觉效果117
6.10.3游戏内容设计117
6.11小结117
第7章游戏背后的数学与物理118
7.1编程中经常用到的数理知识118
7.1.1数学方面118
7.1.2物理方面120
7.2物理小球在游戏中的应用121
7.2.1开发运动体movable类的代码121
7.2.2开发物理引擎ballthread类的代码123
7.2.3视图类——开发ballview类的代码126
7.2.4绘制线程——开发drawthread类的代码129
7.2.5开发activity部分的代码131
7.3粒子系统132
7.3.1粒子对象类——开发粒子对象particle类和粒子集合particleset类132
7.3.2开发焰火粒子系统的物理引擎particlethread类的代码134
7.3.3视图类——开发视图类particleview及其相关类135
7.3.4开发程序activity部分的代码137
7.3.5将焰火粒子系统改为瀑布粒子系统138
7.4碰撞检测技术139
7.4.1碰撞检测技术基础139
7.4.2游戏中实体对象之间的碰撞检测140
7.4.3游戏实体对象与环境之间的碰撞检测143
7.5小结144
第8章游戏中的人工智能145
8.1让怪物聪明起来——android中的路径搜索145
8.1.1路径搜索示例基本框架的搭建145
8.1.2路径搜索示例的控制面板实现147
8.1.3路径搜索示例gameview的实现151
8.1.4深度优先路径搜索dfs154
8.1.5广度优先路径搜索bfs156
8.1.6路径搜索算法——dijkstra159
8.1.7用a*算法优化搜索162
8.2有限状态机164
8.2.1何为有限状态机164
8.2.2有限状态机的简单实现165
8.2.3有限状态机的oo实现170
8.3小结172
第9章游戏开发小秘技173
9.1地图编辑器与关卡设计173
9.1.1关卡地图的重要性173
9.1.2图片分割界面的实现175
9.1.3地图设计界面的实现179
9.2游戏中的模糊逻辑185
9.2.1模糊的才是真实的185
9.2.2如何在android中将游戏模糊化186
9.3游戏的基本优化技巧188
9.3.1代码上的小艺术188
9.3.2android中的查找表技术190
9.3.3游戏的感觉和性能问题192
9.4小结193
第10章游戏的心脏——物理引擎194
10.1物理引擎很重要194
10.1.1什么是物理引擎194
10.1.2常见的物理引擎194
10.22d的王者jbox2d197
10.2.1基本的物理学概念197
10.2.2jbox2d中常用类的介绍199
10.3球体撞击木块金字塔案例203
10.3.1案例运行效果204
10.3.2案例的基本框架结构204
10.3.3常量类——constant205
10.3.4抽象类——mybody206
10.3.5圆形刚体类——mycirclecolor206
10.3.6生成刚体形状的工具类——box2til207
10.3.7颜色工具类——colorutil208
10.3.8主控制类——mybox2dactivity209
10.3.9显示界面类——gameview211
10.3.10绘制线程类——drawthread212
10.4简易打砖块案例213
10.4.1一般碰撞版213
10.4.2碰撞后消失版215
10.5旋转关节跷跷板案例220
10.5.1旋转关节介绍220
10.5.2多边形刚体类mypolygoncolor的开发220
10.5.3生成刚体形状的工具类——box2til221
10.5.4将场景中的刚体摆放到位222
10.5.5增加旋转关节223
10.6旋转关节链条摆案例225
10.6.1案例运行效果225
10.6.2案例的机械结构225
10.6.3主控制类——mybox2dactivity226
10.7组合机械结构案例227
10.7.1案例的运行效果227
10.7.2整体场景的机械结构228
10.7.3案例的基本框架结构229
10.7.4圆形刚体类——mycirclecolor229
10.7.5生成刚体形状的工具类——box2til230
10.7.6主控制类——mybox2dactivity230
10.7.7游戏界面类——gameview232
10.7.8绘制线程类——drawthread233
10.8小结233
第11章opengl es应用开发基础234
11.1opengl es概述及3d基本图形绘制234
11.1.1opengl及opengl es简介234
11.1.23d基本知识235
11.1.3使用索引的不同绘制方式236
11.1.4用索引法绘制三角形的案例238
11.1.5不使用索引数据绘制244
11.2正交投影和透视投影245
11.2.1正交投影246
11.2.2透视投影246
11.2.3两种投影方式的原理及视口247
11.2.4两种投影方式的案例248
11.3光照与材质250
11.3.1光照的3种组成元素250
11.3.2定向光与定位光252
11.3.3法向量253
11.3.4材质254
11.3.5两种光源的案例255
11.4纹理及纹理映射257
11.4.1纹理映射基本原理257
11.4.2使用纹理映射的案例258
11.4.3几种纹理拉伸方式261
11.4.4几种纹理过滤方式262
11.5摄像机和雾特效263
11.5.1摄像机的设置264
11.5.2设置合理的视角264
11.5.3雾特效的开发266
11.6典型几何体的开发267
11.6.1圆柱268
11.6.2圆锥273
11.6.3球276
11.6.4椭圆体278
11.6.5胶囊体281
11.6.6几何体大集合284
11.7小结286
第二篇android游戏开发实战综合案例
第12章滚屏动作游戏——太空保卫战288
12.1游戏的背景及功能概述288
12.1.1背景概述288
12.1.2功能简介288
12.2游戏的策划及准备工作290
12.2.1游戏的策划290
12.2.2android平台下游戏的准备工作291
12.3游戏的架构292
12.3.1各个类的简要介绍292
12.3.2游戏的框架简介293
12.4辅助界面相关类的实现294
12.4.1主控制类——planeactivity的实现294
12.4.2欢迎界面welcomeview类296
12.4.3其他辅助界面的介绍300
12.5游戏界面的框架设计303
12.6游戏实体相关类的实现306
12.6.1飞机plane类的实现306
12.6.2敌方飞机enemyplane类的实现309
12.6.3子弹bullet类的实现311
12.6.4其他相关类的实现312
12.7游戏界面的完善314
12.7.1地图类maps的实现314
12.7.2背景滚动类gameviewback groundthread的实现316
12.7.3物体移动线程movethread的实现317
12.7.4键盘监听线程keythread的实现319
12.7.5图片初始化方法initbitmap的实现320
12.7.6绘制方法ondraw的实现322
12.8游戏的优化与改进324
第13章棋牌游戏——中国象棋人机对弈325
13.1游戏的背景及功能概述325
13.1.1背景概述325
13.1.2功能介绍325
13.2游戏的策划及准备工作327
13.2.1游戏的策划327
13.2.2android平台下游戏的准备工作327
13.3游戏的架构329
13.3.1各个类简要介绍329
13.3.2游戏框架简介330
13.4主控制类——chess_djb_activity331
13.5辅助界面相关类334
13.6游戏界面相关类336
13.6.1游戏界面绘制类gameview336
13.6.2游戏界面常量类viewconstant353
13.7走法引擎相关类354
13.7.1常量类constant354
13.7.2工具类chess_loatil359
13.7.3走法引擎主类loatil360
13.7.4走法的排序规则类mycomparator371
13.7.5记录走棋步骤类stackplaychess371
13.8游戏的优化与改进371
第14章物理传感器游戏——小球快跑(3d版)372
14.1游戏背景及功能概述372
14.1.1背景概述372
14.1.2功能简介372
14.2游戏的策划及准备工作374
14.2.1游戏的策划374
14.2.2小球快跑游戏开发的准备工作375
14.3游戏的架构375
14.3.1游戏的总体架构376
14.3.2游戏的类结构376
14.4主控制类——driftball类的开发378
14.4.1driftball类的代码框架378
14.4.2driftball类的主要成员方法的实现379
14.5游戏主菜单的开发381
14.5.1欢迎界面类——welcome view类的代码框架381
14.5.2welcomeview类主要成员方法382
14.5.3welcomethread类的开发383
14.5.4菜单界面的用户交互事件处理384
14.6游戏界面模块的开发385
14.6.1游戏界面类——gameview的成员变量385
14.6.2gameview的成员方法简介387
14.6.3游戏界面绘制线程——gamethread类的代码框架387
14.6.4gamemenuthread类的开发388
14.6.5用户交互事件处理389
14.7游戏中各个图层的开发391
14.7.1地图图层的开发391
14.7.2其他图层的开发与实现392
14.8游戏后台逻辑的开发395
14.8.1小球的运动控制395
14.8.2小球的碰撞检测396
14.8.3大炮相关类cannon和missile的开发400
14.9传感器计算模块的开发403
14.9.1手机姿态变化监听器——balllistener类的开发403
14.9.2工具类——rotateutil类的代码框架404
14.9.3工具类——rotateutil类的开发406
14.10游戏的优化与改进408
第15章塔防游戏——精灵塔防410
15.1游戏的背景及功能概述410
15.1.1背景概述410
15.1.2功能介绍410
15.2游戏的策划及准备工作413
15.2.1游戏的策划413
15.2.2android平台下游戏开发的准备工作414
15.3游戏的架构415
15.3.1各个类的简要介绍416
15.3.2游戏框架简介417
15.4主控制类tafanggameactivity和数据库类dbutil418
15.4.1主控制类——tafanggame activity主要框架418
15.4.2主控制类——tafanggame activity中部分数据库的实现421
15.4.3主控制类——tafanggame activity中对话框的开发423
15.4.4数据库类dbutil的开发427
11.5界面相关类428
15.5.1欢迎界面welcomeview类的介绍428
15.5.2主界面mainmenusurfaceview类的介绍430
15.5.3音效设置界面musicsurfaceview类的介绍434
15.5.4游戏结束界面gameoverview类和帮助界面helpview类的介绍435
15.5.5积分榜界面highjifensurfaceview类的介绍435
15.6游戏界面gameview及相关类438
15.6.1精灵怪物target类439
15.6.2箭塔singlejianta类443
15.6.3箭shell类444
15.6.4精灵怪物的出击现场——targetnumthread447
15.6.5箭塔控制发射线程——shellnumthread449
15.6.6游戏地图矩阵模拟化451
15.6.7摆放箭塔守护城池452
15.6.8游戏中的2.5d效果455
15.6.9弹指间怪物灰飞烟灭——游戏水晶455
15.7游戏的优化和改进459
第16章策略游戏——回到战国460
16.1游戏的背景及功能概述460
16.1.1背景概述460
16.1.2功能简介460
16.2游戏的策划及准备工作465
16.2.1游戏的策划465
16.2.2android平台下游戏的准备工作465
16.3游戏的架构467
16.3.1游戏的模块架构467
16.3.2游戏各个类的简要介绍468
16.4地图设计器的开发470
16.4.1底层地图设计器的开发470
16.4.2上层地图设计器的开发474
16.5activity和游戏工具类的开发475
16.5.1主控制类——hdzgactivity的介绍475
16.5.2公式封装类——gameformula的介绍478
16.5.3常量工具类constantutil的介绍479
16.6数据存取模块的开发481
16.6.1城池信息以及地图层信息的封装类481
16.6.2数据存取相关类的介绍485
16.7英雄角色模块的开发488
16.7.1hero类的代码框架488
16.7.2英雄运动线程——herogo thread类的开发491
16.7.3辅助线程——herobackdata thread类的开发493
16.8表示层界面模块的开发493
16.8.1滚屏类——screenrollview类的开发494
16.8.2滚屏线程——screenroll thread的开发495
16.8.3游戏界面gameview的框架介绍496
16.8.4游戏界面绘制方法ondraw的介绍498
16.8.5游戏界面屏幕监听方法ontouch的介绍500
16.8.6游戏界面后台线程game viewthread的介绍502
16.9管理面板模块的开发503
16.9.1人物属性面板类manpanel view的开发503
16.9.2城池管理面板类citymanage view的开发508
16.10地图中可遇实体模块的开发511
16.10.1绘制类——mydrawable的开发511
16.10.2抽象类——mymeetabledrawable的开发513
16.10.3森林类——forestdrawable的开发514
16.10.4可遇实体对象的调用流程516
16.11英雄技能模块的开发518
16.11.1技能抽象类——skill的开发518
16.11.2伐木技能类——lumber skill的开发519
16.11.3随心步技能类——suixinbuskill的开发520
16.12游戏提示模块的开发520
16.12.1提示模块抽象类——gamealert的开发520
16.12.2点击确定按钮显示的信息类——plainalert的开发521
16.12.3显示粮草危机信息类——foodalert的开发522
16.12.4辅助线程herobackdatathread中对foodalert的调用524
16.13游戏的优化与改进525
第17章体育游戏——2d迷你桌球527
17.12d桌球的背景及功能概述527
17.1.1背景概述527
17.1.2功能简介527
17.2游戏的策划及准备工作530
17.2.1游戏的策划530
17.2.2android平台下游戏的准备工作530
17.3游戏的架构531
17.3.1游戏的框架简介531
17.3.2各个类的简要介绍532
17.4公共类的实现534
17.4.1主控制类——gameactivity的代码框架534
17.4.2gameactivity类主要成员变量及方法的实现536
17.4.3常量类——constant的实现540
17.5辅助界面相关类的实现542
17.5.1欢迎动画界面welcomeview类的实现542
17.5.2主菜单界面mainmenuview的代码框架544
17.5.3主界面类——mainmenu view部分成员方法的实现545
17.5.4主界面动画线程类view drawthread的实现548
17.5.5排行榜界面highscore view的代码框架549
17.5.6highscoreview类的部分方法的实现550
17.6游戏界面相关类的实现552
17.6.1游戏界面gameview类的代码框架552
17.6.2gameview类部分成员方法的实现553
17.6.3键盘监听线程keythread类的实现557
17.6.4球运动的线程ballgothread类的实现558
17.7情景相关类的实现559
17.7.1球台table类的实现559
17.7.2桌球ball类的代码框架561
17.7.3ball类部分成员方法的实现563
17.7.4球杆cue类的实现566
17.8自定义控件及工具类的实现568
17.8.1球与球碰撞检测的工具类collisionutil的实现568
17.8.2定时器timer类的实现571
17.8.3主菜单按钮mainmenu button类的实现572
17.8.4获取日期的工具dateutil 类的实现573
17.9游戏的优化与改进574
第18章益智游戏——3d版推箱子575
18.13d版推箱子的背景及功能概述575
18.1.1背景概述575
18.1.2功能简介575
18.2游戏的策划及准备工作579
18.2.1游戏的策划579
18.2.2android平台下游戏开发的准备工作579
18.3游戏的架构580
18.3.1游戏的框架简介580
18.3.2各个类的简要介绍581
18.4公共类的实现582
18.4.1主控制类——myactivity的代码框架582
18.4.2myactivity类成员方法的实现584
18.4.3常量类constant的实现585
18.5辅助界面相关类的实现587
18.5.1欢迎动画界面welcomeview类的实现587
18.5.2主菜单界面mainview的实现589
18.6游戏界面相关类590
18.6.1游戏界面mysurfaceview类的设计与实现590
18.6.2键盘监听线程keythread599
18.7自定义控件及工具类600
18.7.1缩放图片的方法picloatil600
18.7.2主菜单上的按钮类mainmenubutton601
18.8情景相关类的实现602
18.8.1机器人类的代码框架602
18.8.2机器人类成员方法的实现603
18.8.3机器人组类robotgroup类的实现605
18.8.4机器人组类成员方法的实现606
18.8.5圆面circle类的实现607
18.8.6矩形纹理类texturerect的实现609
18.8.7纹理矩形组类texturerect group的实现610
18.8.8墙类wall的实现611
18.8.9墙wall类成员方法的实现612
18.8.10箱子cube类的实现616
18.8.11箱子组cubegroup类的实现618
18.8.12箱子移动cubego类的代码框架619
18.8.13箱子移动cubego类的成员方法的实现620
18.8.14地板类floor的实现621
18.9推箱子地图设计器的开发623
18.10游戏的优化与改进624
第19章物理引擎游戏——盛怒的老鼠625
19.1游戏背景及功能概述625
19.1.1游戏开发背景625
19.1.2游戏功能概述625
19.2游戏策划及准备工作628
19.2.1游戏策划628
19.2.2游戏开发的准备工作628
19.3游戏的框架630
19.3.1游戏主要用到的技术631
19.3.2游戏各个类的介绍631
19.3.3游戏的基本框架633
19.4公共类634
19.4.1主控制类——mybox2dactivity634
19.4.2常量类constant635
19.5主界面的设计与实现644
19.5.1鼠头和猫头类taj644
19.5.2鼠头和猫头控制线程——tjthread646
19.5.3主界面mainmenuview646
19.5.4刷帧线程mainmenudrawthread653
19.6工具类654
19.6.1加载及缩放图片的工具类picloatil654
19.6.2生成刚体工具类box2til655
19.6.3声音工具类sountil656
19.7刚体相关类657
19.7.1多边形类mypolygonimg657
19.7.2猫头类bodycat659
19.7.3冰块类bodyice660
19.7.4木条类bodywood661
19.7.5刚体类型枚举类bodytype661
19.7.6刚体查询工具类bodysearchutil662
19.8游戏界面相关类663
19.8.1皮筋类pijin663
19.8.2记录分数类score664
19.8.3刷帧线程drawthread665
19.8.4游戏界面类gameview668
19.9游戏优化与改进673
⑤ Google Android开发入门与实战的作品目录
第1章 掀起你的盖头来—初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现—得到更多人的认可和尊重 1.3.4 获得应有的收益—Android Market 1.4 真实体验—Android模拟器 1.4.1 初识庐山真面目—模拟器概述 1.4.2 模拟器和真机的区别 1.4.3 模拟器使用注意事项 1.5 更上一层楼,加入Android开发社区 1.6 本章小结第2章 工欲善其事 必先利其器—搭建Android开发环境 ……第3章 清点可用资本—Android SDK介绍第4章 赚钱的市场—Android Market及应用发布第5章 千里之行 始于足下—第一个应用HelloWorld第6章 磨刀不误砍柴工—Android应用程序结构介绍第7章 良好的学习开端—Android基本组件介绍第8章 移动信息仓库—Android的数据存储操作第9章 我来“广播”你的“意图”—Intents和Broadcast面对面第10章 一切为用户服务—Service应用实例第11章 循序渐进—开发Android应用的基本步骤第12章 Android综合案例一—RSS阅读器实例第13章 综合案例二—基于Google API开发个人移动地图第14章 综合案例三—基于Android的豆瓣网(Web 2.0)移动客户端开发第15章 综合案例四—在线音乐播放器第16章 综合案例五—手机信息查看助手
⑥ 安卓应用APK文件修改之汉化、美化去广告案例
接上一篇《安卓应用APK文件的解包打包和修改教程》接下来操作简单的三个案例
1)汉化APK软件
在res文件夹中,我们可以看到有很多values-***的文件夹,这就是语言包。values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。
在values文件夹里,通常有arrays.xml、strings.xml等语言文件,要作汉化就要对这些文件进行修改。有时也需要修改其它xml文件,一个一个地认真查看。
2)修改图标标签
每一个APK文件都有一个“图标标签”。将APK程序安装进手机后,在图标下面显示图标标签文字。这个图标标签的内容是可以修改的。在\res\values下找到strings.xml,修改其中的一行:图标标签例如:静音启动同理,如果是窗口小插件,要修改widget_name。
注意:system/app下的apk不宜修改,因为要同时修改对应的odex文件。
【3)去掉APK中的广告】
有很多APK应用都带有广告。为了去掉程序中的广告,要修改main.xml文件与广告有关的内容。在\res目录下找到文件main.xml。通常在\layout目录下,有时也被放在其它目录下。甚至,有时不存在main.xml文件,广告行被放在其它xml文件内。只能细心逐个文件进行查找。无论哪一种情况,查看其内容,你会看到有一项类似的命令如下。这就是广告显示。
android:layout_width=”fill_parent”android:layout_height=”wrap_content”admobsdk:backgroundColor=”#ff000000″admobsdk:textColor=”#ffffffff”admobsdk:keywords=”Android
application”/>将其改为:
android:layout_width=”0.0dip”
android:layout_height=”0.0dip”admobsdk:backgroundColor=”#ff000000″admobsdk:textColor=”#ffffffff”admobsdk:keywords=”Android
application”/>
可以看到,关键是要把fill_parent改为0.0dip,把wrap_content改为0.0dip,其它保持不变即可。这种改法就是不给广告显示空间,当然
你就看不到广告了。
【 4)修改显示电池为1%精度 】
在XT502上,默认显示只有7档:0%,10%,20%,40%,60%,80%和100%。通过修改framework-res.apk,可以改变显示精度。但是在XT502上,实践证明最好可能达到的现实精度只有10%。修改工作如下:
(1)对framework-res.apk进行解包(2)修改和增加电池状态图标(3)修改文件stat_sys_battery.xml(4)修改文件stat_sys_battery_charge.xml(5)打包(6)
提取stat_sys_battery.xml,stat_sys_battery_charge.xml,
resources.arsc和一个图标目录:drawable-mdpi(7)重新装配framework-res.apk
【5)状态栏信息通知文字颜色修改 】
状态栏信息通知文字颜色,是由framework-res.apk文件里res\values下的colors.xml文件控制的,所以我们只需修改colors.xml文件就可以了。另外,此文件还控制下拉栏的文字颜色,可以修改。用文本编辑器打开colors.xml文件,找到
#ff000000
将这句修改为:#ffffffff这状态栏信息通知文字颜色由黑色改为白色。
⑦ android下载图片和视频到本地,求代码,求案例
下面是android多线程下载例子截图:
packagemm.shandong.com.testmultithreaddownload;
importandroid.app.ProgressDialog;
importandroid.content.Intent;
importandroid.net.Uri;
importandroid.os.Environment;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.text.TextUtils;
importandroid.view.View;
importandroid.widget.EditText;
importandroid.widget.Toast;
importjava.io.File;
importmm.shandong.com.testmultithreaddownload.thread.UpdateUIThread;
importmm.shandong.com.testmultithreaddownload.util.FileUtil;
{
ProgressDialogpb;
EditTexteditText;
Handlerhandler;
=null;
///文件路径
privateStringurl=
"http://gdown..com/data/wisegame/3c00add7144d3915/kugouyinle.apk";
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_multi_thread_down_load);
editText=(EditText)findViewById(R.id.editText);
initHandler();
}
publicvoidinitHandler(){
handler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
switch(msg.what){
caseFileUtil.startDownloadMeg:
pb.setMax(mUpdateUIThread.getFileSize());//开始
break;
caseFileUtil.updateDownloadMeg:
if(!mUpdateUIThread.isCompleted())//下载进度消息
{
pb.setProgress(mUpdateUIThread.getDownloadSize());
pb.setMessage("下载速度:"+
mUpdateUIThread.getDownloadSpeed()+"k/秒"+
"下载百分比"+mUpdateUIThread.getDownloadPercent()+"%");
}else{
pb.setMessage("下载完成");
}
break;
caseFileUtil.endDownloadMeg:
Toast.makeText(.this,
"下载完成,马上安装",Toast.LENGTH_SHORT).show();
/*apk安装界面跳转*/
Stringfilename=FileUtil.getFileName(url);
Stringstr="/myfile/"+filename;
StringfileName=Environment.getExternalStorageDirectory()+str;
Intentintent=newIntent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(newFile(fileName)),
"application/vnd.android.package-archive");
startActivity(intent);
break;
}
super.handleMessage(msg);
}
};
}
///开始下载软件
publicvoidstartDownLoad(Viewview){
if(TextUtils.isEmpty(editText.getText().toString())){
Toast.makeText(this,"你输入下载文件地址",Toast.LENGTH_SHORT).show();
return;
}else{
url=editText.getText().toString();
}
//启动线程初始化下载参数
mUpdateUIThread=newUpdateUIThread(handler,url,
FileUtil.setMkdir(this)+File.separator,FileUtil.getFileName(url));
pb=newProgressDialog(this);
pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pb.show();
mUpdateUIThread.start();
}
}
例子代码太长,只能给你一部分,如果想看完整例子代码,请去360手机助手下载安卓学习手册,点击里面的源码可以查看完成代码,方面快速,里面还有安卓的其它小例子,共108个。
⑧ android.location.Location 定位实例化
一、LocationManager
LocationMangager,位置管理器。要想操作定位相关设备,必须先定义个LocationManager。我们可以通过如下代码创建LocationManger对象。
LocationManger locationManager=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
二、LocationListener
LocationListener,位置监听,监听位置变化,监听设备开关与状态。
private LocationListener locationListener=new LocationListener() {
/**
* 位置信息变化时触发
*/
public void onLocationChanged(Location location) {
updateView(location);
Log.i(TAG, "时间:"+location.getTime());
Log.i(TAG, "经度:"+location.getLongitude());
Log.i(TAG, "纬度:"+location.getLatitude());
Log.i(TAG, "海拔:"+location.getAltitude());
}
/**
* GPS状态变化时触发
*/
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
//GPS状态为可见时
case LocationProvider.AVAILABLE:
Log.i(TAG, "当前GPS状态为可见状态");
break;
//GPS状态为服务区外时
case LocationProvider.OUT_OF_SERVICE:
Log.i(TAG, "当前GPS状态为服务区外状态");
break;
//GPS状态为暂停服务时
case LocationProvider.TEMPORARILY_UNAVAILABLE:
Log.i(TAG, "当前GPS状态为暂停服务状态");
break;
}
}
/**
* GPS开启时触发
*/
public void onProviderEnabled(String provider) {
Location location=lm.getLastKnownLocation(provider);
updateView(location);
}
/**
* GPS禁用时触发
*/
public void onProviderDisabled(String provider) {
updateView(null);
}
};
三、Location
Location,位置信息,通过Location可以获取时间、经纬度、海拔等位置信息。上面采用locationListener里面的onLocationChanged()来获取location,下面讲述如何主动获取location。
Location location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
system.out.println("时间:"+location.getTime());
system.out.println("经度:"+location.getLongitude());
注意:Location location=new Location(LocationManager.GPS_PROVIDER)方式获取的location的各个参数值都是为0。
四、GpsStatus.Listener
GpsStatus.Listener ,GPS状态监听,包括GPS启动、停止、第一次定位、卫星变化等事件。
//状态监听
GpsStatus.Listener listener = new GpsStatus.Listener() {
public void onGpsStatusChanged(int event) {
switch (event) {
//第一次定位
case GpsStatus.GPS_EVENT_FIRST_FIX:
Log.i(TAG, "第一次定位");
break;
//卫星状态改变
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
Log.i(TAG, "卫星状态改变");
//获取当前状态
GpsStatus gpsStatus=lm.getGpsStatus(null);
//获取卫星颗数的默认最大值
int maxSatellites = gpsStatus.getMaxSatellites();
//创建一个迭代器保存所有卫星
Iterator<GpsSatellite> iters = gpsStatus.getSatellites().iterator();
int count = 0;
while (iters.hasNext() && count <= maxSatellites) {
GpsSatellite s = iters.next();
count++;
}
System.out.println("搜索到:"+count+"颗卫星");
break;
//定位启动
case GpsStatus.GPS_EVENT_STARTED:
Log.i(TAG, "定位启动");
break;
//定位结束
case GpsStatus.GPS_EVENT_STOPPED:
Log.i(TAG, "定位结束");
break;
}
};
};
//绑定监听状态
lm.addGpsStatusListener(listener);
五、GpsStatus
GpsStatus,GPS状态信息,上面在卫星状态变化时,我们就用到了GpsStatus。
//实例化
GpsStatus gpsStatus = locationManager.getGpsStatus(null); // 获取当前状态
//获取默认最大卫星数
int maxSatellites = gpsStatus.getMaxSatellites();
//获取第一次定位时间(启动到第一次定位)
int costTime=gpsStatus.getTimeToFirstFix();
//获取卫星
Iterable<GpsSatellite> iterable=gpsStatus.getSatellites();
//一般再次转换成Iterator
Iterator<GpsSatellite> itrator=iterable.iterator();
六、GpsSatellite
GpsSatellite,定位卫星,包含卫星的方位、高度、伪随机噪声码、信噪比等信息。
//获取卫星
Iterable<GpsSatellite> iterable=gpsStatus.getSatellites();
//再次转换成Iterator
Iterator<GpsSatellite> itrator=iterable.iterator();
//通过遍历重新整理为ArrayList
ArrayList<GpsSatellite> satelliteList=new ArrayList<GpsSatellite>();
int count=0;
int maxSatellites=gpsStatus.getMaxSatellites();
while (itrator.hasNext() && count <= maxSatellites) {
GpsSatellite satellite = itrator.next();
satelliteList.add(satellite);
count++;
}
System.out.println("总共搜索到"+count+"颗卫星");
//输出卫星信息
for(int i=0;i<satelliteList.size();i++){
//卫星的方位角,浮点型数据
System.out.println(satelliteList.get(i).getAzimuth());
//卫星的高度,浮点型数据
System.out.println(satelliteList.get(i).getElevation());
//卫星的伪随机噪声码,整形数据
System.out.println(satelliteList.get(i).getPrn());
//卫星的信噪比,浮点型数据
System.out.println(satelliteList.get(i).getSnr());
//卫星是否有年历表,布尔型数据
System.out.println(satelliteList.get(i).hasAlmanac());
//卫星是否有星历表,布尔型数据
System.out.println(satelliteList.get(i).hasEphemeris());
//卫星是否被用于近期的GPS修正计算
System.out.println(satelliteList.get(i).hasAlmanac());
}
为了便于理解,接下来模拟一个案例,如何在程序代码中使用GPS获取位置信息。
第一步:新建一个Android工程项目,命名为mygps,目录结构如下
第二步:修改main.xml布局文件,修改内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cursorVisible="false"
android:editable="false"
android:id="@+id/editText"/>
</LinearLayout>
第三步:实用Adnroid平台的GPS设备,需要添加上权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
第四步:修改核心组件activity,修改内容如下
package com.ljq.activity;
import java.util.Iterator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Criteria;
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;
public class GpsActivity extends Activity {
private EditText editText;
private LocationManager lm;
private static final String TAG="GpsActivity"; @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
lm.removeUpdates(locationListener);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText=(EditText)findViewById(R.id.editText);
lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
//判断GPS是否正常启动
if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){
Toast.makeText(this, "请开启GPS导航...", Toast.LENGTH_SHORT).show();
//返回开启GPS导航设置界面
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent,0);
return;
}
//为获取地理位置信息时设置查询条件
String bestProvider = lm.getBestProvider(getCriteria(), true);
//获取位置信息
//如果不设置查询要求,getLastKnownLocation方法传人的参数为LocationManager.GPS_PROVIDER
Location location= lm.getLastKnownLocation(bestProvider);
updateView(location);
//监听状态
lm.addGpsStatusListener(listener);
//绑定监听,有4个参数
//参数1,设备:有GPS_PROVIDER和NETWORK_PROVIDER两种
//参数2,位置信息更新周期,单位毫秒
//参数3,位置变化最小距离:当位置距离变化超过此值时,将更新位置信息
//参数4,监听
//备注:参数2和3,如果参数3不为0,则以参数3为准;参数3为0,则通过时间来定时更新;两者为0,则随时刷新
// 1秒更新一次,或最小位移变化超过1米更新一次;
//注意:此处更新准确度非常低,推荐在service里面启动一个Thread,在run中sleep(10000);然后执行handler.sendMessage(),更新位置
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, locationListener);
}
//位置监听
private LocationListener locationListener=new LocationListener() {
/**
* 位置信息变化时触发
*/
public void onLocationChanged(Location location) {
updateView(location);
Log.i(TAG, "时间:"+location.getTime());
Log.i(TAG, "经度:"+location.getLongitude());
Log.i(TAG, "纬度:"+location.getLatitude());
Log.i(TAG, "海拔:"+location.getAltitude());
}
/**
* GPS状态变化时触发
*/
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
//GPS状态为可见时
case LocationProvider.AVAILABLE:
Log.i(TAG, "当前GPS状态为可见状态");
break;
//GPS状态为服务区外时
case LocationProvider.OUT_OF_SERVICE:
Log.i(TAG, "当前GPS状态为服务区外状态");
break;
//GPS状态为暂停服务时
case LocationProvider.TEMPORARILY_UNAVAILABLE:
Log.i(TAG, "当前GPS状态为暂停服务状态");
break;
}
}
/**
* GPS开启时触发
*/
public void onProviderEnabled(String provider) {
Location location=lm.getLastKnownLocation(provider);
updateView(location);
}
/**
* GPS禁用时触发
*/
public void onProviderDisabled(String provider) {
updateView(null);
}
};
⑨ 《Android游戏开发大全Android游戏开发大全》pdf下载在线阅读全文,求百度网盘云资源
《Android游戏开发大全》(吴亚峰//苏亚光)电子书网盘下载免费在线阅读
链接: https://pan..com/s/1gRKVpsSwPve9VLEFTsaEIw
书名:Android游戏开发大全
作者:吴亚峰//苏亚光
译者:百纳科技 注解
出版社:人民邮电出版社
出版年份:2012-1
页数:674
内容简介:
《Android游戏开发大全》以Android手机游戏的开发为主题,结合真实的游戏案例向读者详细介绍了Android平台下游戏开发的整个流程,同时在游戏开发的介绍过程中还分享了作者多年积累的开发技巧与经验。
全书分为两篇,共19章,第1篇(第1~11章)以简单易懂的实例为依托,详细介绍了Android的前台渲染技术、常用界面布局、网络开发、SQLite数据库的存取、传感器应用的开发、游戏中经常使用的人工智能算法、流行的物理引擎Box2D以及OpenGLES3D开发的相关知识。第2篇(第12~19章)详细介绍了8个真实的游戏案例,涵盖了手机游戏中的8个不同种类,包括体育类、益智类、滚屏动作类、棋牌类、物理传感器类、塔防类、物理引擎类以及策略类游戏。每一个游戏都是按照实际的开发步骤进行介绍,并逐步地将Android手机游戏的整个开发过程展现在读者面前。同时在源代码中还包含了详细的注释,以尽量帮助读者掌握代码中的每一个细节。另外,第2篇中所有的案例项目都配有讲解视频,以帮助读者快速理解并得到提升。
作者简介:
吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位,1998年开始从事Java的开发,有十多年的Java开发经验与培训经验,主要的研究方向是Java EE。现在为Java EE独立软件开发工程师,同时兼任Sun授权、Java培训中心认证教师,为数十家着名企业培训了上千名软件开发人员,曾编写过《精通NetBeans——Java桌面、Web与企业级程序开发详解》及《Java SE 6.0编程指南》等畅销技术书籍。
苏亚光:JavaME独立软件工程师,有软件领域7年的从业经验,在软件开发和计算机教学方面有着丰富的经验。早期主要从事底层软件的设计与开发工作,现主要从事JavaEE企业应用程序的开发、设计等方面的工作。同时,在SOA领域也做了很多有益的工作。
⑩ 求《android应用案例开发大全第二版》PDF和源码
Google Android SDK开发范例大全,源代码已经增加附件。