某外企mono for android试题

简介: Hitcents C#Programming Test   This test is designed to evaluate generalC# and Xamarin development skills.

Hitcents C#Programming Test

 

This test is designed to evaluate generalC# and Xamarin development skills. Prior knowledge of C# or Xamarin tools isnot a requirement, we are really evaluating your skills to learn quickly, use searchengines and StackOverflow, and problem solve—all on your own.

 

Begin by installing Xamarin.Android andXamarin Studio here: http://xamarin.com/android

 

The installer will take some time, but willinstall Java, the Android SDK, and everything you need to take this test. Itshould work on a Mac or Windows. After using Xamarin Studio with Androidprojects, you may get a prompt saying you must purchase a license, select theoption to start a 30-day trial.

 

General Rules:

  • You may use the internet, books, or any other programming-related material.  Open source projects available on Github, CodePlex, etc. are also fine to use to assist you on each question.
  • Points will be deducted for solutions that include poor programming practices, excessive RAM or CPU usage, or could be considered slow and non-optimized.  Likewise, bonus points may be awarded for excellent software design and quick executing code.
  • You may complete any question in any order, although some questions may build onto answers from previous questions.

 

Question 1 (Sorting data):

  • Create a C# console project in Xamarin Studio. This will just run natively on your desktop.
  • Prompt the user to enter several “words” separated by spaces
  • When the user presses <enter>, sort the words alphabetically
  • Print out the sorted words, and prompt the user for a new set of words
  • The application will continue to prompt for more words, until the user types the word “exit”
  • Make your program user-friendly, your text printed at the console should be nicely formatted and easy to understand

 

Question 2 (Importing data):

  • Create a C# console project in Xamarin Studio. This will just run natively on your desktop.
  • You are given a large text file containing address data for many different stores in the United States.  Look in “Question 2\Stores.txt”, you may also see the layout of this file described in “Stores.xls”.
  • Create the necessary tables to store the information in SQLite. Use proper data types, primary keys, indexes, etc., as your schema design is taken into account.  Make sure to trim blank spaces out of each column, and handle the possibility of bad data.
  • Create a console application that will load this text file into SQLite, you must load the file and insert each row from C# code.  No import tools or classes can be used, you will have to read the file from C# and parse the data by hand (or via an open source project if desired).  You may use any method you wish to connect to the database.
  • Part of the challenge in this problem is to find an appropriate C# library for working with SQLite and integrate it into your project.
  • Speed is a priority, so make sure the time it takes for the entire file to load is printed in the console window on completion.  Full time format in HH:MM:SS.mmm is preferred.

 

 

Question 3 (Importing more data):

  • Create a C# console project in Xamarin Studio. This will just run natively on your desktop.
  • Building onto your existing SQL database, you will have to keep track of order information for each store fromQuestion 2.
  • You will have to parse the Orders.xml file located in the “Question 3” folder.  You may use any method you wish for parsing the xml.  You should not have to worry about malformed xml.
  • An order contains the following:

◦  A GUID as a primary key or ID

◦  The store's ID number

◦  Total Items in the order

◦  Total Cost of the order in USdollars

◦  Up-to a 32 character name of aperson tied to the order

◦  A Yes/No value that says if theorder was a “rush” order.

◦  Date and time of the order

  • Import this xml into a new table in the same database as Question 2, use appropriate data types, as hard disk space needs to be kept at minimum while not affecting rounding, if someone decided to run queries that total the rows in your database they should be able to get accurate answers.
  • Also print out the time it takes for your code to run as you did in Question 2.
  • BONUS: Set up a proper foreign key relationship from your orders to your stores in your database.  If someone ran a query to delete a store, SQLite should automatically delete any orders by that store.  Queries will also be made that lookup orders by order id, customer, and date.  Make indexes to speed up queries in this manner.

 

Question 4 (Web Requests):

  • Create a C# console project in Xamarin Studio. You can also choose to make a Xamarin.Android app if you prefer.
  • You are trying to discover a password for a login on a website, at the url: https://www.hitcents.com/csharptest.cgi?username=*&password=* (replace the asterisks with the username and password)
  • Luckily the web site is not very secure, and is limited to a 2 letter password that can only contain letters, numbers, or the underscore “_” and you know that a valid username is “john.smith”.  You also know that it isnot case sensitive.
  • Make a console application that hits the web page, guessing every combination of passwords for “john.smith”.  Print out the correct password when discovered.  The page will return either “SUCCESS” or “FAIL”. 
  • Each web request could potentially fail at a networking level, so make sure you handle the error gracefully and retry the password combination in such cases.
  • To speed up the time it takes for your program to run, make up to 5 or more requests at a time on separate threads, making sure to stop when the password is found.
  • Record the overall time it takes your program to run as in Question 1 andQuestion 2.

 

Question 5 (Xamarin.Android):

  • Create a Xamarin.Android project in Xamarin Studio.
  • Build a simple Android app using implementing any of the following concepts:

◦  Navigating to differentactivities

◦  Action Bar

◦  Android fragments

◦  ListView and adapters

◦  Using the camera or photolibrary

  • You can build any application you want, choose something to show off your abilities for making native Android apps with Xamarin.

 

Question6 (Java binding project):

  • Create a Xamarin Java Bindings project in Xamarin Studio.
  • Setup a binding for the China Mobile SDK included with this test. Documentation is also included.
  • Use “Metadata.xml” and rewrite any relevant parameter names, because they default to p0, p1, p2, etc.
  • Setup a sample application to make test purchases through the SDK.

 


相关文章
|
Java API Android开发
Mono for Android 优势与劣势
原文:Mono for Android 优势与劣势   最近有兴趣了解一下Mono for Andriod,也就是使用.NET平台来开发Andriod程序。Mono for Android API 几乎映射标准的Andriod API.例如,两边API几乎所有相同的类、方法和字段都相同。
1329 0
|
9天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
14天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
16天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
18天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
【10月更文挑战第35天】在数字化时代,安卓应用的开发成为了一个热门话题。本文旨在通过浅显易懂的语言,带领初学者了解安卓开发的基础知识,同时为有一定经验的开发者提供进阶技巧。我们将一起探讨如何从零开始构建第一个安卓应用,并逐步深入到性能优化和高级功能的实现。无论你是编程新手还是希望提升技能的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
16天前
|
存储 API 开发工具
探索安卓开发:从基础到进阶
【10月更文挑战第37天】在这篇文章中,我们将一起探索安卓开发的奥秘。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和建议。我们将从安卓开发的基础开始,逐步深入到更复杂的主题,如自定义组件、性能优化等。最后,我们将通过一个代码示例来展示如何实现一个简单的安卓应用。让我们一起开始吧!
|
17天前
|
存储 XML JSON
探索安卓开发:从新手到专家的旅程
【10月更文挑战第36天】在这篇文章中,我们将一起踏上一段激动人心的旅程,从零基础开始,逐步深入安卓开发的奥秘。无论你是编程新手,还是希望扩展技能的老手,这里都有适合你的知识宝藏等待发掘。通过实际的代码示例和深入浅出的解释,我们将解锁安卓开发的关键技能,让你能够构建自己的应用程序,甚至贡献于开源社区。准备好了吗?让我们开始吧!
26 2
|
18天前
|
Android开发
布谷语音软件开发:android端语音软件搭建开发教程
语音软件搭建android端语音软件开发教程!
|
26天前
|
编解码 Java Android开发
通义灵码:在安卓开发中提升工作效率的真实应用案例
本文介绍了通义灵码在安卓开发中的应用。作为一名97年的聋人开发者,我在2024年Google Gemma竞赛中获得了冠军,拿下了很多项目竞赛奖励,通义灵码成为我的得力助手。文章详细展示了如何安装通义灵码插件,并通过多个实例说明其在适配国际语言、多种分辨率、业务逻辑开发和编程语言转换等方面的应用,显著提高了开发效率和准确性。
|
24天前
|
Android开发 开发者 UED
安卓开发中自定义View的实现与性能优化
【10月更文挑战第28天】在安卓开发领域,自定义View是提升应用界面独特性和用户体验的重要手段。本文将深入探讨如何高效地创建和管理自定义View,以及如何通过代码和性能调优来确保流畅的交互体验。我们将一起学习自定义View的生命周期、绘图基础和事件处理,进而探索内存和布局优化技巧,最终实现既美观又高效的安卓界面。
30 5