导航:首页 > 操作系统 > android项目实践

android项目实践

发布时间:2022-10-09 08:59:25

‘壹’ android多渠道快速打包实践

参考资料:
美团Android自动化之旅—生成渠道包
Android批量打包提速
AndroidMultiChannelBuildTool

背景
随着发版需要,每次发版所需渠道包越来越多(现在差不多有一百个左右了),正常gradle打包由于耗时效率过低已无法满足需求,开始了android多渠道快速打包实践。

方法
下面主要介绍两种快速打包的方式:
1、类似美团的方式,在META-INF中写入渠道名的空文件,用于读取空文件。 美团Android自动化之旅—生成渠道包
2、在apk末尾动态写入渠道信息。 一种动态为apk写入信息的方案
其实这两种方式都是同一个原理,替换以前从manifest中读取渠道号的方式,而使用新的获取方式(渠道号如何写入就如何读取)。
所以这首先需要客户端(重要!):
1、统一应用中获取渠道的方式并替换之前的(最好兼容)。
2、注意第三方SDK渠道号的传入,比如友盟sdk,否则第三方会使用默认从manifest中读取的方式。

下面介绍一种已经测试过的方法(git上开源项目 AndroidMultiChannelBuildTool )
1、安装环境由于脚本环境是使用python语言,所以需要我们 安装环境 。
2、导入项目导入开源项目 AndroidMultiChannelBuildTool ),并把想要批量打包的apk文件拷贝到PythonTool目录下(与py同级),运行py脚本即可打包完成。

以上基本实现快速打包,经过测试一分钟百十个无压力。另外需要注意这种方式只适用于打包需求一致渠道号不同,不适用特殊定制渠道。

备注:9月21日补充快速打包java版本,详见 AndroidMultiChannelBuildTool-Java-master

‘贰’ 如何创建第一个android程序

一、开发环境安装:1.下载AndroidSDK.2.如果使用Eclipse,请安装ADT插件。3.下载最新的SDK工具和平台。二、创建Android项目一个android项目包含了程序中用到的所有源代码文件.使用AndroidSDK工具可以轻松的创建一个包含默认目录和文件的项目。本节介绍如何使用eclipse或从命令行创建一个项目。CreateaProjectwithEclipse点击工具中的New.在弹出的窗口中,打开Android目录,选择【AndroidApplicationProject】,点击【next】.Figure1..3.在弹出的窗口,如图【Figure1】中,填入下列信息:ApplicationName:应用程序名.填入"MyFirstApp."ProjectName:项目目录名和显示在Eclipse中的项目文件名。PackageName:程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp.",但是,你不能发布以"com.example”为命名空间的应用到GooglePlay上。MinimumRequiredSDK:程序支持的android系统的最小版本,如果你想要支持的android设备,需要将这个版本号设置得相对低一点。有过有些功能在低版本上不支持,你可以只在高版本上启动该功能。在此我们使用默认设置。TargetSDK:当前版本,也是最高版本,当有更高的版本出来时,你应该重新在新的版本上测试你的程序,并修改此参数。CompileWith:你编译程序时使用的版本。建议使用最新的版本,可通过SDKMANAGER下载。新版本中有新的一些特性,并会根据用户的使用体验做一些改进。Theme:AndroidUI样式。可以按默认设置。点击Next.在下一个屏幕上使用默认设置,继续点击next.下一个屏幕可以设置程序图标.你可以通过多种方式自定义图标,系统会自动为你生成各种屏幕尺寸下的图标。在你发布程序前,请确保你的图标满足Iconography设计指南中的说明定义。继续点击Next.现在可以选择一个activity模版.当前项目,我们选择BlankActivity,然后点击Next.4.剩下的都按默认设置,点击Finish.这样,这个项目就创建完毕了从命令行工具创建项目如果你没有使用Eclipse,你可以从命令行通过SDK工具创建项目。切换到AndroidSDK目录,tools/path.执行:androidlisttargets该命令显示可用的android平台。如果没有显示任何列表,请先通过AndroidSDKManager工具进行安装.参见AddingPlatformsandPackages.执行:androidcreateproject--target--nameMyFirstApp\--path/MyFirstApp--activityMainActivity\--packagecom.example.myfirstapp将修改为上一步骤中显示的id;将修改为你要保存项目的文件夹。’rereadytobeginbuildingtheapp.Continuetothenextlesson.小贴士:将platform-tools/同tools/目录一样加到你的环境变量。这样,这个项目就创建完毕了.三、运行你的程序你要如何运行你的程序取决于两件事:是否有真实的android设备;是否使用eclipse.在运行你的程序之前,你需要注意项目中的一些文件夹和文件:AndroidManifest.xmlmanifest文件描述应用程序的一些基础特性并定义每一个组件。你可以查看项目中的manifest文件,与之前谈到的manifest文件的说明对比,即可知道对应的一些元素的设置:src/存放源代码的目录.默认情况下,包含一个启动时用到的Activity类。res/含有多个子文件,用于程序资源的存放。示例目录如下:drawable-hdpi/包含一些可用于高分辨率屏幕的绘图实体,如图片。其他类似的目录包含对应的分辨率屏幕下的图片。layout/程序UI文件。values/包含用于定义诸如字符串、颜色等的xml文件。在真实设备上运行如果你有android系统设备,可以直接在上面安装你的程序并运行:首先你的设备需要安装usb驱动。如果你是在window上开发,你可以安装合适的usb驱动。具体驱动安装信息可以参考OEMUSBDrivers在设备上启用USB调试大部分Android3.2或更早的机器,在【设置】-【应用程序】-【开发】中设置。Android4.0和之后的系统,应该是在【设置】-【开发选项】中。Note:OnAndroid4.2andnewer,.Tomakeitavailable,gotoSettings>..运行步骤:打开项目文件,点击【run】。在弹出的窗口中选择【AndroidApplication】,然后点击【OK】Eclipse会自动将程序安装到你的设备上并运行他。在模拟器上运行在【run】-【runconfiguration】中的【Target】页面添加和设置模拟器,然后即可运行

‘叁’ Android创建数据库需要做哪些事情

创建一个类继承数据库帮助类,在其中写数据库创建,更新方法

‘肆’ 关于一个大学生的android项目

建议,对本地播放器进行优化,以适应网络数据的不连续性。可以参考一些开源的网络播放器的相关方法。等网络部分搞定的话,就可以用了。

‘伍’ Android开发项目过程是怎样

第一步,先打开eclipse。打开后的界面如如图所示,学过java的人肯定都熟悉这个编程环境,没学过java的请先去学习java,因为android使用的是java的语法。
点击左上角的file>new>android application project , 以此开始新建一个android项目。
点击新建后悔出现如下所示的窗口。第一个红框是让你写你应用的名字,就是软件的名字;第二个红框是写这个项目的名字;第三个红框是写java代码包的名字。第四个大的红框是让你选择你要新建的android项目的一些信息,开发的sdk版本和面向的android版本和使用的主题。完成后,点击NEXT。
这个窗口是在询问你是不是创建一个自定义图标的软件,是否要创建activity等。完成后,点击NEXT
这个窗口允许你更换你软件的图标。和其它的一些信息。完成后,点击NEXT
这个窗口让你选择一种你软件activity要使用的样式。完成后,点击NEXT
这个窗口让你输入你想要的activity的名字和你想要的layout的名字。完成后,点击NEXT
好了一切设置好惦记finish后悔出现如下所示的窗口,最左侧是你项目的分层结构等信息,左上角大部分显示的是软件当前默认的layout和操作layout的工具栏等。到此为止,你已经成功的创建了一个android项目。

‘陆’ Android开发主要学哪些

1、Java学习(这是基础)
2、Android环境搭建(JDK + Android Studio)
3、Android布局、控件、组件等基础知识的学习。(少不了新建一个HelloWorld项目)
4、网络、线程、数据的处理(进阶)
5、一个很小的实际项目的实践,加深记忆,也初步了解一个Android项目,在实践过程中了解自己还差什么。
6、学会使用别人造的轮子,比如Github就是个很神奇的地方,当然你要有基础才能会用别人的东西,也能在出现错误时修改错误。
PS:JAVA基础必须学扎实,忠告。刚开始学,可能搭建一个空的项目都会出现问题,会很焦灼,如果真的想学,那么这个阶段必须要经过,循序渐进,祝你好运。

‘柒’ 这个android项目,该如何去实现能给个思路吗详见问题补充。

我只能简单的说说用蓝牙传输到后台服务器的思路,能不能理解和看懂就看你的了
首先是权限要加上
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /><uses-permission android:name="android.permission.BLUETOOTH" />
然后就是重头戏了
import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class ThinBTClient extends Activity {

private static final String TAG = "THINBTCLIENT";
private static final boolean D = true;
private BluetoothAdapter mBluetoothAdapter = null;
private BluetoothSocket btSocket = null;
private OutputStream outStream = null;
// Well known SPP UUID (will *probably* map to RFCOMM channel 1
// (default) if not in use);
// see comments in onResume().
private static final UUID MY_UUID = UUID
.fromString("***********");

private static String address = "**********"; // <==要连接的蓝牙设备MAC地址

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

if (D)
Log.e(TAG, "+++ ON CREATE +++");

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
Toast.makeText(this, "Bluetooth is not available.",
Toast.LENGTH_LONG).show();
finish();
return;
}

if (!mBluetoothAdapter.isEnabled()) {
Toast.makeText(this,
"Please enable your BT and re-run this program.",
Toast.LENGTH_LONG).show();
finish();
return;
}

if (D)
Log.e(TAG, "+++ DONE IN ON CREATE, GOT LOCAL BT ADAPTER +++");
}

@Override
public void onStart() {
super.onStart();
if (D)
Log.e(TAG, "++ ON START ++");
}

@Override
public void onResume() {
super.onResume();

if (D) {
Log.e(TAG, "+ ON RESUME +");
Log.e(TAG, "+ ABOUT TO ATTEMPT CLIENT CONNECT +");
}
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
try {
btSocket = device.(MY_UUID);
} catch (IOException e) {
Log.e(TAG, "ON RESUME: Socket creation failed.", e);
}
mBluetoothAdapter.cancelDiscovery();
try {
btSocket.connect();
Log
.e(TAG,
"ON RESUME: BT connection established, data transfer link open.");
} catch (IOException e) {
try {
btSocket.close();
} catch (IOException e2) {
Log
.e(
TAG,
"ON RESUME: Unable to close socket ring connection failure",
e2);
}
}

// Create a data stream so we can talk to server.
if (D)
Log.e(TAG, "+ ABOUT TO SAY SOMETHING TO SERVER +");

try {
outStream = btSocket.getOutputStream();
} catch (IOException e) {
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);
}

String message = "Hello message from client to server.";
byte[] msgBuffer = message.getBytes();
try {
outStream.write(msgBuffer);
} catch (IOException e) {
Log.e(TAG, "ON RESUME: Exception ring write.", e);
}
}

@Override
public void onPause() {
super.onPause();

if (D)
Log.e(TAG, "- ON PAUSE -");

if (outStream != null) {
try {
outStream.flush();
} catch (IOException e) {
Log.e(TAG, "ON PAUSE: Couldn't flush output stream.", e);
}
}

try {
btSocket.close();
} catch (IOException e2) {
Log.e(TAG, "ON PAUSE: Unable to close socket.", e2);
}
}

@Override
public void onStop() {
super.onStop();
if (D)
Log.e(TAG, "-- ON STOP --");
}

@Override
public void onDestroy() {
super.onDestroy();
if (D)
Log.e(TAG, "--- ON DESTROY ---");
}
}
这些只是思路,看我写了这么多也应该给点分了吧,看懂了就能运用了

阅读全文

与android项目实践相关的资料

热点内容
怎么把电脑里文件夹挪出来 浏览:693
java流程处理 浏览:683
ftp创建本地文件夹 浏览:659
腰椎第一节压缩 浏览:738
xp去掉加密属性 浏览:117
2345怎么压缩文件 浏览:982
迷你夺宝新算法 浏览:407
服务器如何防止木马控制 浏览:715
压缩空气用电磁阀 浏览:742
微信为什么不能设置加密认证 浏览:672
邓伦参加密室逃脱视频 浏览:391
音频压缩编码标准 浏览:300
常提到的app是表示什么 浏览:261
天津程序员传销 浏览:349
下班之后的程序员 浏览:73
检测支持ssl加密算法 浏览:344
衢州发布新闻什么APP 浏览:85
中国移动长沙dns服务器地址 浏览:252
wifi密码加密了怎么破解吗 浏览:599
linux命令cpu使用率 浏览:70