Now that you’ve got VTS setup, it’s worth taking a bit of time to get familiar with the user interface. There are a lot of powerful tools built into the program, and this guide will help you work out where to look when you want to achieve a particular task.
The screenshot below shows the main VTS homescreen. This is the window that will greet you every time you open the program.
As you can see, VTS is built using the Microsoft-style Ribbon interface. Love it or loathe, it is a very handy interface that groups similar tasks into categories, and in my opinion is a much more accessible way of accessing VTS functions.
The various functions are arranged in tabs, and we will take a look at each tab in turn.
This is where you can create new projects, open existing ones, change settings, activate license etc.
- New project – clicking here will open the following window, which allows you to set up a new project (details covered elsewhere):
- Open solution – this is where you open existing projects. These are saved as .tensln files, and by default are stored in Documents/Virtuous Ten Studio/Projects
- Settings – allows you to change general settings, such as VTS theme colour, as well as more advanced settings such as using different APKtool builds or framework tags etc (covered elsewhere)
- Recent – displays recently opened projects and folder locations
- Changelog – as it sounds really!
- About- details about the team, links to website, license details etc
This is where the bulk of the magic happens. Once you open a solution, it will appear in the Solution Explorer window on the left. In the file tree, solutions are represented by the small VTS logo (in this example, the solution is called SenseCream). Projects are then branched under that (e.g. Dialer).
Double clicking on a file will load it up into the main window on the right, where you can view and edit data.
Right clicking on these entries will bring up a context menu:
- Right clicking on solution name:
- Right clicking on project name:
- Right clicking on project subentry:
The various file functions are grouped together on the ribbon at the top. Hovering over each button will give you a brief description of what each button does.
The first 3 categories are fairly obvious, as for the rest:
- Fold / Unfold all – if the active file in the main viewer has collapsible entries, these buttons will expand/collapse all entries in the file
- Build all – this will build all the projects within the selected solution into apks
- Clean all – this will delete all previously built apks for the chosen solution
- Push all – this will all the solution’s apk files to your connected device; if the apks need building first, this command will automatically do that before attempting to push them
- Data – this allows you to open an Explorer window to the contents of the individual projects
- Binary – this will open the folder containing the built apk for each project
- Backup – displays the backup details for each project (discussed in detail later in this guide)
This tab gives you control about what information is displayed on the window.
The first entries are related to log generation. If you click on log viewer, it opens a separate window which can display as much or as little log info as you want.
You can use the checkboxes to choose what info is displayed in the log, and the Filter and Tag option let you narrow down the info further. There is no right click menu, but you can use the mouse to highlight and Ctrl-C to copy selected info out of the window. You can also choose to export as a .log file.
The next group of buttons control the appearance of panels. VTS splits different info groups into separate panels. You can see from the following screenshot the sheer wealth of data VTS can display – the good news is this is entirely customisable to your taste!
You can use the Hide / Show panels buttons to quickly hide/show all available panels. Each panel has 3 icons in the top right (from left to right):
- Choose panel behaviour (docked, floating, autohide)
- Pin the panel so it’s always visible
- Close the panel
It’s worth playing around a bit to get a set up that gives you the data you want. Here is an example of my setup:
I have got the Solution Explorer and Build Error panels pinned, so they are always expanded. I have set the remaining panels as unpinned and autohide around the edges, so when I click them they pop up, but then disappear when I click elsewhere.
Of course you can also rearrange the panels, just click on the header of a panel and drag it to the desired position (make sure the panel is pinned, unpinned panels can’t be moved).
If you closed a panel, just re-open it via the “Windows” button in the “View” tab. The panel will open as a seperate window, however, you can grad them again to the desire position and dock them to the main window.
Compare and backup
This is one of the most useful tabs, and arguably one of VTS’s most powerful tools. At some point, everyone using VTS will want to compare two existing apks to see how they differ. This tab offers 2 different ways to do so, and uses a built in version of Winmerge.
- Compare window
This would be useful if you wanted to compare a stock apk with a themed/modded one to see what has been changed. Click on the Compare Window button, and the following window will appear:
Choose which folders/files you’d like to compare and hit the Compare button. A new Winmerge instance will open.
You can then compare contents, and work out what has been changed between the two files. If you make any changes in either window, don’t forget to hit the Save button in Winmerge before closing.
Also, don’t forget that if you edit an xml within Winmerge, it will save the original as *.xml.bak – you will need to delete that file before attempting to build the apk or you will get compile errors!
VTS automatically stores backups of each project’s files after importing an apk, and lets you create manual backups as well. The automatic backup needs to be enabled in the Settings section on the File tab. This is useful in a couple of scenarios:
Say you want to try editing something, but it doesn’t work. Just open the Backup window, and restore your last backup – nice easy way to revert changes.
Applying theme/mod to new apk version:
Say you’ve themed an apk, and a new stock version has been released. VTS makes it easy to apply your edits to the new version:
- Make a manual backup of your current project
- Right click on the project and Import file
- Find the new stock apk, and import it into the project – this will replace your themed files with the stock ones
- Now open the Backup window, and select the right project
- On the left side Compare section, choose your most recent backup
- On the right, choose current data and hit Compare
- A Winmerge window will open showing your themed files on the left, and the newly added stock files on the right
- Make whatever changes are required, hit Save and close Winmerge
- Build the project and it will compile your themed/modded files using the new apk as a base
If your device is connected via ADB, this tab will let you interact with it using the normal ADB commands, including adb push, pull and log.
Make sure your ADB connection is properly set up and all neccessary drivers are installed.
This tab contains some advanced functions for working with m10 and smali files. These will be covered in one of the later tutorials.
However, one highlight is the Scale tool, which makes it incredibly easy to convert between different screen resolutions – very useful when trying to port apps between devices!
Further sources of info, including the VTS website and more info on APKtool and Smali.
This tab has specialised functions, and only appears when needed.
If you are working on a text based file (xml, smali, x10), this tab gives you some advanced navigation tools. You can mark lines of interest, and quickly jump between markers
- Image tools
- You can open the folder location in an Explorer window, or using any graphics editor of your choice.
- If the image is a 9patch file, you can open it using the draw9patch editing tool that comes in the AndroidSDK – all without leavin
So there you have it, a fairly exhaustive trek through the VTS interface. The info contained above barely scratches the surface of what VTS can do, but hopefully now you’re armed with enough knowledge to go exploring for yourself!