Android Stduio 使用说明Word格式.docx

上传人:b****4 文档编号:6426890 上传时间:2023-05-06 格式:DOCX 页数:18 大小:840.45KB
下载 相关 举报
Android Stduio 使用说明Word格式.docx_第1页
第1页 / 共18页
Android Stduio 使用说明Word格式.docx_第2页
第2页 / 共18页
Android Stduio 使用说明Word格式.docx_第3页
第3页 / 共18页
Android Stduio 使用说明Word格式.docx_第4页
第4页 / 共18页
Android Stduio 使用说明Word格式.docx_第5页
第5页 / 共18页
Android Stduio 使用说明Word格式.docx_第6页
第6页 / 共18页
Android Stduio 使用说明Word格式.docx_第7页
第7页 / 共18页
Android Stduio 使用说明Word格式.docx_第8页
第8页 / 共18页
Android Stduio 使用说明Word格式.docx_第9页
第9页 / 共18页
Android Stduio 使用说明Word格式.docx_第10页
第10页 / 共18页
Android Stduio 使用说明Word格式.docx_第11页
第11页 / 共18页
Android Stduio 使用说明Word格式.docx_第12页
第12页 / 共18页
Android Stduio 使用说明Word格式.docx_第13页
第13页 / 共18页
Android Stduio 使用说明Word格式.docx_第14页
第14页 / 共18页
Android Stduio 使用说明Word格式.docx_第15页
第15页 / 共18页
Android Stduio 使用说明Word格式.docx_第16页
第16页 / 共18页
Android Stduio 使用说明Word格式.docx_第17页
第17页 / 共18页
Android Stduio 使用说明Word格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Android Stduio 使用说明Word格式.docx

《Android Stduio 使用说明Word格式.docx》由会员分享,可在线阅读,更多相关《Android Stduio 使用说明Word格式.docx(18页珍藏版)》请在冰点文库上搜索。

Android Stduio 使用说明Word格式.docx

pilerArgs.add('

-Xbootclasspath/p:

app\\libs\\framework.jar'

}

C.剩下的错误还有2个如下图:

错误1是由于不同平台导入的difference.java是不一样的,修改用对应的,本文采用Difference.java_HI3798MV100来覆盖Difference.java

D.

新建一个build文件夹,给一个路径

成功:

Adb相关

运行报错:

查看5037端口是否被占用:

其中端口状态有:

LISTENING表示侦听状态、ESTABLISHED表示建立连接,CLOSE_WAIT对方主动关闭连接或者网络异常导致连接中断,TIME_WAIT我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。

终止后后台还是有adb启动,导致被占用,最终发现是浏览器占用,修改端口或去掉浏览器的adb都可。

机顶盒端设置IP:

通过adbconnect192.168.30.68连接,

在androidstudio中可以发现已经连接上设备了:

Androidstudio调试

编译成功后,采用adb安装到机顶盒运行,出现错误:

原因是后门在system里面有一个预制apk

1.mount-oremount,rw/system---获取system写权限

2.给apk换个名字就找不到了~

3.删除data下面的参数

签名:

1.assign文件夹中执行sign.sh文件,主要为命令行:

sourcekeytool-importkeypair-ktest.jks-p123456-pk8platform.pk8-certplatform.x509.pem-aliasjz

其中test.jks是生成签名文件,相关信息要与androidstudio、代码中一致

内容一致,

代码(app下的build.gradle文件):

signingConfigs{

release{

storeFilefile("

./test.jks"

storePassword'

123456'

keyAlias'

jz'

keyPassword'

}

debug{

android.applicationVariants.all{variant->

variant.outputs.each{output->

output.outputFile=newFile("

Jzfactory.apk"

);

签名完成:

其中:

手动添加签名命令为

java-jarsignapk.jarplatform.x509.pemplatform.pk8input.apkoutput.apk

删除apk:

启动相关

amstart-ncom.jzbyapp.jzfactory/.MainActivityU

pmenablecom.jzbyapp.jzfactory

SDK环境

 

IPTV基线使用Hisi3798MV200android4.4版本,基线SDK名称:

HiSTBAndroidV600R003C01Patch01

1.解压HiSTBAndroidV600R003C01SPC010.tar.gz

Tar–vxfHiSTBAndroidV600R003C01SPC010.tar.gz

2.补丁:

解压testpatch_for_3798mv200_spc010_20170217_unicom_001.tar.gz,将其中的new文件夹覆盖步骤1中SDK基线的目录

3.打后门补丁,

4.配置配置环境变量

与实际编译环境一致

5编译SDK(sourcebuild/envsetup.sh,lunchHi3798CV200-eng;

更新api,makeupdate-api

完整编译makebigfish-j322>

&

1|teebigfish.log)

编译成功。

SDK下编译后门apk

1.环境配置

2.进入具体的代码目录后,mm–B编译,生成apk文件。

调试

1)编译错误

xmlns:

custom="

2)生成签名apk,并指定生成apk的名字,修改app/build.gradle

android{

signingConfigs{

release{

storeFilefile("

./JZSign.jks"

storePassword'

keyAlias'

release'

keyPassword'

}

}

android.applicationVariants.all{variant->

NGB_Search.apk"

3)优先编译依赖,修改工程根目录下build.gradle

allprojects{

gradle.projectsEvaluated{

tasks.withType(JavaCompile){

pilerArgs.add('

libs\\frame.jar'

4)编译依赖库添加,注意compile和provided区别,修改app/build.gradle

dependencies{

providedfiles('

E:

/StudioProjects/JzFactory/libs/frame.jar'

/StudioProjects/JzFactory/libs/ngbj.jar'

5)汉化

6)生成签名apk,修改app/build.gradle

JAVA知识点

在activity的生命周期中,只要离开了可见阶段,或者说失去了焦点,activity就很可能被进程终止了!

,被KILL掉了,,这时候,就需要有种机制,能保存当时的状态,这就是savedInstanceState的作用。

当一个Activity在PAUSE时,被kill之前,它可以调用onSaveInstanceState()来保存当前activity的状态信息(在paused状态时,要被KILLED的时候)。

用来保存状态信息的Bundle会同时传给两个method,即onRestoreInstanceState()andonCreate().

•super关键字也有两种意义:

–调用父类的方法–调用父类的构造器•但是,super并不表示一个指向对象的引用,它只是一个特殊的关键字,用来告诉编译器,现在要调用的是父类的方法。

this变量代表对象本身。

AndroidManifest.xml是Android应用的入口文件,它描述了package中暴露的组件(activities,services,等等),他们各自的实现类,各种能被处理的数据和启动位置。

除了能声明程序中的Activities,ContentProviders,Services,和IntentReceivers,还能指定permissions和instrumentation(安全控制和测试)。

Activity有四种加载模式:

standard、singleTop、singleTask、singleInstance(其中前两个是一组、后两个是一组),默认为standard

standard:

就是intent将发送给新的实例,所以每次跳转都会生成新的activity。

singleTop:

也是发送新的实例,但不同standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTop的Activity),不会构造新的实例

singleTask:

和后面的singleInstance都只创建一个实例,当intent到来,需要创建设置为singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。

如果有直接将intent发送给它。

singleInstance:

首先说明一下task这个概念,Task可以认为是一个栈,可放入多个Activity。

比如启动一个应用,那么Android就创建了一个Task,然后启动这个应用的入口Activity,那在它的界面上调用其他的Activity也只是在这个task里面。

那如果在多个task中共享一个Activity的话怎么办呢。

举个例来说,如果开启一个导游服务类的应用程序,里面有个Activity是开启GOOGLE地图的,当按下home键退回到主菜单又启动GOOGLE地图的应用时,显示的就是刚才的地图,实际上是同一个Activity,实际上这就引入了singleInstance。

singleInstance模式就是将该Activity单独放入一个栈中,这样这个栈中只有这一个Activity,不同应用的intent都由这个Activity接收和展示,这样就做到了共享。

当然前提是这些应用都没有被销毁,所以刚才是按下的HOME键,如果按下了返回键,则无效

Service:

【1】service与activity同级,与activity不同的是,它不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行。

比如听音乐,网络下载数据等,都是由service运行的

【2】service生命周期:

Service只继承了onCreate(),onStart(),onDestroy()三个方法,第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法

【3】service与activity间的通信

Service后端的数据最终还是要呈现在前端Activity之上的,因为启动Service时,系统会重新开启一个新的进程,这就涉及到不同进程间通信的问题了(AIDL),Activity与service间的通信主要用IBinder负责。

一.Intent的介绍

Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。

Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。

因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。

二.Inten启动组件的方法

Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcasts。

具体方法如下:

组件名称

方法名称

Activity

startActvity()

startActivity()

Service

startService()

bindService()

Broadcasts

sendBroadcasts()

sendOrderedBroadcasts()

sendStickyBroadcasts()

三.Intent的属性

Intent有以下几个属性:

动作(Action),数据(Data),分类(Category),类型(Type),组件(Compent)以及扩展信(Extra)。

其中最常用的是Action属性和Data属性。

Constant

Targetcomponent

Action

ACTION_CALL

activity

Initiateaphonecall.

ACTION_EDIT

Displaydatafortheusertoedit.

ACTION_MAIN

Startupastheinitialactivityofatask,withnodatainputandnoreturnedoutput.

ACTION_SYNC

Synchronizedataonaserverwithdataonthemobiledevice.

ACTION_BATTERY_LOW

broadcastreceiver

Awarningthatthebatteryislow.

ACTION_HEADSET_PLUG

Aheadsethasbeenpluggedintothedevice,orunpluggedfromit.

ACTION_SCREEN_ON

Thescreenhasbeenturnedon.

ACTION_TIMEZONE_CHANGED

Thesettingforthetimezonehaschanged.

安卓四大组件

一、Activity详解

二、Service详解

三、BroadcastReceiver详解

四、ContentProvider详解

外加一个重要组件intent的详解。

catch(Exceptione)异常处理

Handler

一、Handler的定义:

主要接受子线程发送的数据,并用此数据配合主线程更新UI。

解释:

当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发,比如说,你要是点击一个Button,Android会分发事件到Button上,来响应你的操作。

如果此时需要一个耗时的操作,例如:

联网读取数据,或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象,如果5秒钟还没有完成的话,会收到Android系统的一个错误提示"

强制关闭"

这个时候我们需要把这些耗时的操作,放在一个子线程中,因为子线程涉及到UI更新,,Android主线程是线程不安全的,也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。

这个时候,Handler就出现了。

,来解决这个复杂的问题,由于Handler运行在主线程中(UI线程中),它与子线程可以通过Message对象来传递数据,这个时候,Handler就承担着接受子线程传过来的(子线程用sedMessage()方法传弟)Message对象,(里面包含数据),把这些消息放入主线程队列中,配合主线程进行更新UI。

二、Handler一些特点

handler可以分发Message对象和Runnable对象到主线程中,每个Handler实例,都会绑定到创建他的线程中(一般是位于主线程),它有两个作用:

(1)安排消息或Runnable在某个主线程中某个地方执行;

(2)安排一个动作在不同的线程中执行。

Handler中分发消息的一些方法

post(Runnable)

postAtTime(Runnable,long)

postDelayed(Runnablelong)

sendEmptyMessage(int)

sendMessage(Message)

sendMessageAtTime(Message,long)

sendMessageDelayed(Message,long)

以上post类方法允许你排列一个Runnable对象到主线程队列中,

sendMessage类方法,允许你安排一个带数据的Message对象到队列中,等待更新。

子类需要继承Hendler类,并重写handleMessage(Messagemsg)方法,用于接受线程数据。

Runnable和Thread的区别

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;

Thread类是在java.lang包中定义的。

一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。

Q:

图标?

啥意思

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2